Update docs - Add docs for Unraid installation

This commit is contained in:
Josh.5
2022-09-03 17:32:28 +12:00
parent 234daf876b
commit 787035fb21
9 changed files with 71 additions and 6 deletions

View File

@@ -1,10 +1,13 @@
# Headless Steam Service
![](./images/banner.jpg)
Play your games in the browser with audio. Connect another device and use it with Steam Remote Play. Easily deploy a Steam Docker instance in seconds.
## Features:
- Full video/audio noVNC web access to a Xfce4 Desktop
- NVIDIA GPU support
- AMD GPU support
- Full video/audio noVNC web access to a Xfce4 Desktop
- Root access
- SSH server for remote terminal access
@@ -13,17 +16,19 @@ Play your games in the browser with audio. Connect another device and use it wit
## Notes:
### ADDITIONAL SOFTWARE:
If you wish to install additional applications, you can generate a
script inside the `~/init.d` directory ending with ".sh". This will be executed on the container startup.
If you wish to install additional applications, you can generate a script inside the `~/init.d` directory ending with ".sh".
This will be executed on the container startup.
### STORAGE PATHS:
Everything that you wish to save in this container should be stored in the home directory or a docker container mount that you have specified. All files that are store outside your home directory are not persistent and will be wiped if there is an update of the container or you change something in the template.
Everything that you wish to save in this container should be stored in the home directory or a docker container mount that you have specified.
All files that are store outside your home directory are not persistent and will be wiped if there is an update of the container or you change something in the template.
### GAMES LIBRARY:
It is recommended that you mount your games library to `/mnt/games` and configure Steam to add that path.
### AUTO START APPLICATIONS:
In this container, Steam is configured to automatically start. If you wish to add additional services to automatically start, add them under **Applications > Settings > Session and Startup** in the WebUI.
In this container, Steam is configured to automatically start. If you wish to add additional services to automatically start,
add them under **Applications > Settings > Session and Startup** in the WebUI.
### NETWORK MODE:
If you want to use the container as a Steam Remote Play (previously "In Home Streaming") host device you should create a custom network and assign this container it's own IP, if you don't do this the traffic will be routed through the internet since Steam thinks you are on a different network.
@@ -41,7 +46,12 @@ If your host is already running X, you can just use that. To do this, be sure to
---
## Running:
## Installation:
- [Unraid](./docs/unraid.md)
---
## Running locally:
For a development environment, I have created a script in the devops directory.

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

55
docs/unraid.md Normal file
View File

@@ -0,0 +1,55 @@
## CONTAINER TEMPLATE:
1. Navigate to "**APPS**" tab.
1. Search for "*steam-headless*"
1. Select either **Install** or **Actions > Install** from the search result.
![](./images/install-steam-headless-unraid-ca.png)
1. Configure the template as required.
## GPU CONFIGURATION:
This container can use your dedicated GPU.
In order for it to do this you need to have either the Nvidia-Driver or Radeon-Top plugin installed.
### NVIDIA
1. Install the [Nvidia-Driver Plugin](https://forums.unraid.net/topic/98978-plugin-nvidia-driver/) by [ich777](https://forums.unraid.net/profile/72388-ich777/). This will maintain an up-to-date NVIDIA driver installation on your Unraid server.
![](./images/unraid-nvidia-plugin.png)
1. Toggle the steam-headless Docker Container template editor to "**Advanced View**".
1. In the "**Extra Parameters**" field, ensure that you have the "--runtime=nvidia" parameter added.
![](./images/unraid-steam-headless-template-nvidia-extra-params.png)
1. (Optional - This step is only necessary if you only multiple NVIDIA GPUs. If you have a single GPU, then leaving this as "all" is fine.) Expand the **Show more settings...** section near the bottom of the template. In the **Nvidia GPU UUID**: (NVIDIA_VISIBLE_DEVICES) variable, copy your GPU UUID (can be found in the Unraid Nvidia Plugin. See that forum thread for details).
### AMD
1. Install the [Radeon-Top Plugin](https://forums.unraid.net/topic/92865-support-ich777-amd-vendor-reset-coraltpu-hpsahba/) by [ich777](https://forums.unraid.net/profile/72388-ich777/).
![](./images/unraid-amd-plugin.png)
1. Profit
## ADDING CONTROLLER SUPPORT:
Unraid's Linux kernel by default does not have the modules required to support controller input. Steam requires these modules to be able to create the virtual "Steam Input Gamepad Emulation" device that it can then map buttons to.
[ich777](https://forums.unraid.net/profile/72388-ich777/) has kindly offered to build and maintain the required modules for the Unraid kernel as he already has a CI/CD pipeline in place and a small number of other kernel modules that he is maintaining for other projects. So a big thanks to him for that!
<span style="display:block;background-color:transparent;border-radius:4px;border-left:solid 5px grey;padding:10px;">
<b>Note:</b>
<br>This may no longer be required with Unraid v6.11 release (TBD). The required uinput module should be added to the kernel for that release.
</span>
1. Install the **uinput** plugin from the **Apps** tab.
![](./images/unraid-steam-headless-install-uinput-plugin.png)
1. The container will not be able to receive kernel events from the host unless the **Network Type:** is set to "*host*". Ensure that you container is configured this way.
![](./images/unraid-steam-headless-configure-network-as-host.png)
<span style="display:block;background-color:transparent;border-radius:4px;border-left:solid 5px red;padding:10px;">
<b>Warning:</b>
<br>Be aware that, by default, this container requires at least 8083, 5900, 5901, 32123, and 2222 available for the WebUI, VNC, Web Audio, and SSH to work. It will also require any ports that Steam requires for Steam Remote Play.
</span>
You can override the default ports used by the container with these variables:
- PORT_SSH (Default: 2222)
- PORT_VNC (Default: 5900)
- PORT_AUDIO_STREAM (Default: 5901)
- PORT_NOVNC_WEB (Default: 8083)
- PORT_AUDIO_WEBSOCKET (Default: 32123)
1. No server restart is required, however. Ensure that the **steam-headless** Docker container is recreated after installing the **uinput** plugin for it to be able to detect the newly added module.

BIN
images/banner.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 328 KiB