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-dogwalk.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
@@ -76,19 +76,22 @@ We are currently transitioning our desktop containers from X11 to Wayland. While
76
76
**Important:** GPU acceleration support for X11 is being deprecated. Future development for hardware acceleration will focus entirely on the Wayland stack.
77
77
78
78
To enable Wayland mode, set the following environment variable:
79
-
*`-e PIXELFLUX_WAYLAND=true`
79
+
80
+
*`-e PIXELFLUX_WAYLAND=true`
80
81
81
82
**Why use Wayland?**
82
-
***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.
83
-
***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.
83
+
84
+
***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.
85
+
***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.
84
86
85
87
#### GPU Configuration
86
88
87
89
To use hardware acceleration in Wayland mode, we distinguish between the card used for **Rendering** (3D apps/Desktops) and **Encoding** (Video Stream).
88
90
89
91
**Configuration Variables:**
90
-
*`DRINODE`: The path to the GPU used for **Rendering** (EGL).
91
-
*`DRI_NODE`: The path to the GPU used for **Encoding** (VAAPI/NVENC).
92
+
93
+
*`DRINODE`: The path to the GPU used for **Rendering** (EGL).
94
+
*`DRI_NODE`: The path to the GPU used for **Encoding** (VAAPI/NVENC).
92
95
93
96
If both variables point to the same device, the container will automatically enable **Zero Copy** encoding, significantly reducing CPU usage and latency.
94
97
@@ -111,10 +114,12 @@ For Intel and AMD GPUs.
111
114
**Note: Nvidia support is not available for Alpine-based images.**
112
115
113
116
**Prerequisites:**
114
-
1. **Driver:** Proprietary drivers **580 or higher** are required.
115
-
2. **Kernel Parameter:** Set `nvidia-drm.modeset=1` in your host bootloader (GRUB/systemd-boot).
116
-
3. **Initialization:** On headless systems, run `nvidia-modprobe --modeset` on the host (once per boot) to initialize the card.
117
-
4. **Docker Runtime:** Configure the host docker daemon to use the Nvidia runtime:
117
+
118
+
1. **Driver:** Proprietary drivers **580 or higher** are required.
119
+
2. **Kernel Parameter:** Set `nvidia-drm.modeset=1` in your host bootloader (GRUB/systemd-boot).
120
+
3. **Initialization:** On headless systems, run `nvidia-modprobe --modeset` on the host (once per boot) to initialize the card.
121
+
4. **Docker Runtime:** Configure the host docker daemon to use the Nvidia runtime:
@@ -146,16 +152,15 @@ This container is compatible with [SealSkin](https://sealskin.app).
146
152
147
153
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.
148
154
149
-
* **SealSkin Server:** [Get it Here](https://github.com/linuxserver/docker-sealskin)
150
-
* **Browser Extension:** [Chrome](https://chromewebstore.google.com/detail/sealskin-isolation/lclgfmnljgacfdpmmmjmfpdelndbbfhk) and [Firefox](https://addons.mozilla.org/en-US/firefox/addon/sealskin-isolation/).
151
-
* **Mobile App:** [iOS](https://apps.apple.com/us/app/sealskin/id6758210210) and [Android](https://play.google.com/store/apps/details?id=io.linuxserver.sealskin)
152
-
155
+
* **SealSkin Server:** [Get it Here](https://github.com/linuxserver/docker-sealskin)
156
+
* **Browser Extension:** [Chrome](https://chromewebstore.google.com/detail/sealskin-isolation/lclgfmnljgacfdpmmmjmfpdelndbbfhk) and [Firefox](https://addons.mozilla.org/en-US/firefox/addon/sealskin-isolation/).
157
+
* **Mobile App:** [iOS](https://apps.apple.com/us/app/sealskin/id6758210210) and [Android](https://play.google.com/store/apps/details?id=io.linuxserver.sealskin)
153
158
154
159
### Options in all Selkies-based GUI containers
155
160
156
161
This container is based on [Docker Baseimage Selkies](https://github.com/linuxserver/docker-baseimage-selkies).
157
162
158
-
???+ note "Click to expand: Optional Environment Variables"
163
+
??? note "Click to expand: Optional Environment Variables"
159
164
160
165
| Variable | Description |
161
166
| :----: | --- |
@@ -184,15 +189,16 @@ This container is based on [Docker Baseimage Selkies](https://github.com/linuxse
184
189
| WATERMARK_LOCATION | Where to paint the image over the stream integer options below |
185
190
186
191
**`WATERMARK_LOCATION` Options:**
187
-
- **1**: Top Left
188
-
- **2**: Top Right
189
-
- **3**: Bottom Left
190
-
- **4**: Bottom Right
191
-
- **5**: Centered
192
-
- **6**: Animated
192
+
193
+
* **1**: Top Left
194
+
* **2**: Top Right
195
+
* **3**: Bottom Left
196
+
* **4**: Bottom Right
197
+
* **5**: Centered
198
+
* **6**: Animated
193
199
194
200
195
-
???+ note "Click to expand: Optional Run Configurations (DinD & GPU Mounts)"
201
+
??? note "Click to expand: Optional Run Configurations (DinD & GPU Mounts)"
196
202
197
203
| Argument | Description |
198
204
| :----: | --- |
@@ -201,7 +207,7 @@ This container is based on [Docker Baseimage Selkies](https://github.com/linuxse
201
207
| `--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. |
202
208
203
209
204
-
???+ note "Click to expand: Legacy X11 Resolution & Acceleration"
210
+
??? note "Click to expand: Legacy X11 Resolution & Acceleration"
205
211
206
212
**Note:** This section applies only if you are **NOT** using `PIXELFLUX_WAYLAND=true`.
207
213
@@ -211,7 +217,7 @@ This container is based on [Docker Baseimage Selkies](https://github.com/linuxse
211
217
212
218
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:
213
219
214
-
```
220
+
```bash
215
221
-e SELKIES_MANUAL_WIDTH=1920
216
222
-e SELKIES_MANUAL_HEIGHT=1080
217
223
-e MAX_RESOLUTION=1920x1080
@@ -222,16 +228,16 @@ This container is based on [Docker Baseimage Selkies](https://github.com/linuxse
222
228
223
229
To launch the desktop session in a different language, set the `LC_ALL` environment variable. For example:
@@ -243,7 +249,7 @@ Natively installed packages (e.g., via `apt-get install`) will not persist if th
243
249
244
250
To install an application, use the command line inside the container:
245
251
246
-
```
252
+
```bash
247
253
proot-apps install filezilla
248
254
```
249
255
@@ -261,7 +267,7 @@ You can install packages from the system's native repository using the [universa
261
267
262
268
### Advanced Configuration
263
269
264
-
???+ note "Click to expand: Hardening Options"
270
+
??? note "Click to expand: Hardening Options"
265
271
266
272
These variables can be used to lock down the desktop environment for single-application use cases or to restrict user capabilities.
267
273
@@ -283,21 +289,24 @@ You can install packages from the system's native repository using the [universa
283
289
| **`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. |
284
290
285
291
286
-
???+ note "Click to expand: Selkies Application Settings"
292
+
??? note "Click to expand: Selkies Application Settings"
287
293
288
294
Using environment variables every facet of the application can be configured.
289
295
290
296
**Booleans and Locking:**
291
297
Boolean settings accept `true` or `false`. You can also prevent the user from changing a boolean setting in the UI by appending `|locked`.
292
-
* Example: `-e SELKIES_USE_CPU="true|locked"`
298
+
299
+
* Example: `-e SELKIES_USE_CPU="true|locked"`
293
300
294
301
**Enums and Lists:**
295
302
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.
296
-
* Example: `-e SELKIES_ENCODER="jpeg"`
303
+
304
+
* Example: `-e SELKIES_ENCODER="jpeg"`
297
305
298
306
**Ranges:**
299
307
Use a hyphen-separated `min-max` format for a slider, or a single number to lock the value.
300
-
* Example: `-e SELKIES_FRAMERATE="60"`
308
+
309
+
* Example: `-e SELKIES_FRAMERATE="60"`
301
310
302
311
**Manual Resolution Mode:**
303
312
If `SELKIES_MANUAL_WIDTH` or `SELKIES_MANUAL_HEIGHT` are set, the resolution is locked to those values.
0 commit comments