You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/images/docker-steam.md
+48-39Lines changed: 48 additions & 39 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -113,19 +113,22 @@ We are currently transitioning our desktop containers from X11 to Wayland. While
113
113
**Important:** GPU acceleration support for X11 is being deprecated. Future development for hardware acceleration will focus entirely on the Wayland stack.
114
114
115
115
To enable Wayland mode, set the following environment variable:
116
-
*`-e PIXELFLUX_WAYLAND=true`
116
+
117
+
*`-e PIXELFLUX_WAYLAND=true`
117
118
118
119
**Why use Wayland?**
119
-
***Zero Copy Encoding:** When configured correctly with a GPU, the frame is rendered and encoded on the video card without ever being copied to the system RAM. This drastically lowers CPU usage and latency.
120
-
***Modern Stack:** Single-application containers utilize **Labwc** (replacing Openbox) and full desktop containers use **KDE Plasma Wayland**, providing a more modern and secure compositing environment while retaining the same user experience.
120
+
121
+
***Zero Copy Encoding:** When configured correctly with a GPU, the frame is rendered and encoded on the video card without ever being copied to the system RAM. This drastically lowers CPU usage and latency.
122
+
***Modern Stack:** Single-application containers utilize **Labwc** (replacing Openbox) and full desktop containers use **KDE Plasma Wayland**, providing a more modern and secure compositing environment while retaining the same user experience.
121
123
122
124
#### GPU Configuration
123
125
124
126
To use hardware acceleration in Wayland mode, we distinguish between the card used for **Rendering** (3D apps/Desktops) and **Encoding** (Video Stream).
125
127
126
128
**Configuration Variables:**
127
-
*`DRINODE`: The path to the GPU used for **Rendering** (EGL).
128
-
*`DRI_NODE`: The path to the GPU used for **Encoding** (VAAPI/NVENC).
129
+
130
+
*`DRINODE`: The path to the GPU used for **Rendering** (EGL).
131
+
*`DRI_NODE`: The path to the GPU used for **Encoding** (VAAPI/NVENC).
129
132
130
133
If both variables point to the same device, the container will automatically enable **Zero Copy** encoding, significantly reducing CPU usage and latency.
131
134
@@ -148,10 +151,12 @@ For Intel and AMD GPUs.
148
151
**Note: Nvidia support is not available for Alpine-based images.**
149
152
150
153
**Prerequisites:**
151
-
1. **Driver:** Proprietary drivers **580 or higher** are required.
152
-
2. **Kernel Parameter:** Set `nvidia-drm.modeset=1` in your host bootloader (GRUB/systemd-boot).
153
-
3. **Initialization:** On headless systems, run `nvidia-modprobe --modeset` on the host (once per boot) to initialize the card.
154
-
4. **Docker Runtime:** Configure the host docker daemon to use the Nvidia runtime:
154
+
155
+
1. **Driver:** Proprietary drivers **580 or higher** are required.
156
+
2. **Kernel Parameter:** Set `nvidia-drm.modeset=1` in your host bootloader (GRUB/systemd-boot).
157
+
3. **Initialization:** On headless systems, run `nvidia-modprobe --modeset` on the host (once per boot) to initialize the card.
158
+
4. **Docker Runtime:** Configure the host docker daemon to use the Nvidia runtime:
@@ -183,16 +189,15 @@ This container is compatible with [SealSkin](https://sealskin.app).
183
189
184
190
SealSkin is a self-hosted, client-server platform that provides secure authentication and collaboration features while using a browser extension to intercept user actions such as clicking a link or downloading a file and redirect them to a secure, isolated application environment running on a remote server.
185
191
186
-
* **SealSkin Server:** [Get it Here](https://github.com/linuxserver/docker-sealskin)
187
-
* **Browser Extension:** [Chrome](https://chromewebstore.google.com/detail/sealskin-isolation/lclgfmnljgacfdpmmmjmfpdelndbbfhk) and [Firefox](https://addons.mozilla.org/en-US/firefox/addon/sealskin-isolation/).
188
-
* **Mobile App:** [iOS](https://apps.apple.com/us/app/sealskin/id6758210210) and [Android](https://play.google.com/store/apps/details?id=io.linuxserver.sealskin)
189
-
192
+
* **SealSkin Server:** [Get it Here](https://github.com/linuxserver/docker-sealskin)
193
+
* **Browser Extension:** [Chrome](https://chromewebstore.google.com/detail/sealskin-isolation/lclgfmnljgacfdpmmmjmfpdelndbbfhk) and [Firefox](https://addons.mozilla.org/en-US/firefox/addon/sealskin-isolation/).
194
+
* **Mobile App:** [iOS](https://apps.apple.com/us/app/sealskin/id6758210210) and [Android](https://play.google.com/store/apps/details?id=io.linuxserver.sealskin)
190
195
191
196
### Options in all Selkies-based GUI containers
192
197
193
198
This container is based on [Docker Baseimage Selkies](https://github.com/linuxserver/docker-baseimage-selkies).
194
199
195
-
???+ note "Click to expand: Optional Environment Variables"
200
+
??? note "Click to expand: Optional Environment Variables"
196
201
197
202
| Variable | Description |
198
203
| :----: | --- |
@@ -221,15 +226,16 @@ This container is based on [Docker Baseimage Selkies](https://github.com/linuxse
221
226
| WATERMARK_LOCATION | Where to paint the image over the stream integer options below |
222
227
223
228
**`WATERMARK_LOCATION` Options:**
224
-
- **1**: Top Left
225
-
- **2**: Top Right
226
-
- **3**: Bottom Left
227
-
- **4**: Bottom Right
228
-
- **5**: Centered
229
-
- **6**: Animated
229
+
230
+
* **1**: Top Left
231
+
* **2**: Top Right
232
+
* **3**: Bottom Left
233
+
* **4**: Bottom Right
234
+
* **5**: Centered
235
+
* **6**: Animated
230
236
231
237
232
-
???+ note "Click to expand: Optional Run Configurations (DinD & GPU Mounts)"
238
+
??? note "Click to expand: Optional Run Configurations (DinD & GPU Mounts)"
233
239
234
240
| Argument | Description |
235
241
| :----: | --- |
@@ -238,7 +244,7 @@ This container is based on [Docker Baseimage Selkies](https://github.com/linuxse
238
244
| `--device /dev/dri:/dev/dri` | Mount a GPU into the container, this can be used in conjunction with the `DRINODE` environment variable to leverage a host video card for GPU accelerated applications. |
239
245
240
246
241
-
???+ note "Click to expand: Legacy X11 Resolution & Acceleration"
247
+
??? note "Click to expand: Legacy X11 Resolution & Acceleration"
242
248
243
249
**Note:** This section applies only if you are **NOT** using `PIXELFLUX_WAYLAND=true`.
244
250
@@ -248,7 +254,7 @@ This container is based on [Docker Baseimage Selkies](https://github.com/linuxse
248
254
249
255
This will set the total virtual framebuffer to 4K. By default, the virtual monitor is 16K. If you have performance issues in an accelerated X11 session, try clamping the resolution to 1080p and work up from there:
250
256
251
-
```
257
+
```bash
252
258
-e SELKIES_MANUAL_WIDTH=1920
253
259
-e SELKIES_MANUAL_HEIGHT=1080
254
260
-e MAX_RESOLUTION=1920x1080
@@ -259,16 +265,16 @@ This container is based on [Docker Baseimage Selkies](https://github.com/linuxse
259
265
260
266
To launch the desktop session in a different language, set the `LC_ALL` environment variable. For example:
@@ -280,7 +286,7 @@ Natively installed packages (e.g., via `apt-get install`) will not persist if th
280
286
281
287
To install an application, use the command line inside the container:
282
288
283
-
```
289
+
```bash
284
290
proot-apps install filezilla
285
291
```
286
292
@@ -298,7 +304,7 @@ You can install packages from the system's native repository using the [universa
298
304
299
305
### Advanced Configuration
300
306
301
-
???+ note "Click to expand: Hardening Options"
307
+
??? note "Click to expand: Hardening Options"
302
308
303
309
These variables can be used to lock down the desktop environment for single-application use cases or to restrict user capabilities.
304
310
@@ -320,21 +326,24 @@ You can install packages from the system's native repository using the [universa
320
326
| **`RESTART_APP`** | If true, enables a watchdog service that automatically restarts the main application if it is closed. The user's autostart script is made read-only and root owned to prevent tampering. |
321
327
322
328
323
-
???+ note "Click to expand: Selkies Application Settings"
329
+
??? note "Click to expand: Selkies Application Settings"
324
330
325
331
Using environment variables every facet of the application can be configured.
326
332
327
333
**Booleans and Locking:**
328
334
Boolean settings accept `true` or `false`. You can also prevent the user from changing a boolean setting in the UI by appending `|locked`.
329
-
* Example: `-e SELKIES_USE_CPU="true|locked"`
335
+
336
+
* Example: `-e SELKIES_USE_CPU="true|locked"`
330
337
331
338
**Enums and Lists:**
332
339
These settings accept a comma-separated list of values. The first item becomes default. If only one item is provided, the UI dropdown is hidden.
333
-
* Example: `-e SELKIES_ENCODER="jpeg"`
340
+
341
+
* Example: `-e SELKIES_ENCODER="jpeg"`
334
342
335
343
**Ranges:**
336
344
Use a hyphen-separated `min-max` format for a slider, or a single number to lock the value.
337
-
* Example: `-e SELKIES_FRAMERATE="60"`
345
+
346
+
* Example: `-e SELKIES_FRAMERATE="60"`
338
347
339
348
**Manual Resolution Mode:**
340
349
If `SELKIES_MANUAL_WIDTH` or `SELKIES_MANUAL_HEIGHT` are set, the resolution is locked to those values.
0 commit comments