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-webtop.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
@@ -100,19 +100,22 @@ We are currently transitioning our desktop containers from X11 to Wayland. While
100
100
**Important:** GPU acceleration support for X11 is being deprecated. Future development for hardware acceleration will focus entirely on the Wayland stack.
101
101
102
102
To enable Wayland mode, set the following environment variable:
103
-
*`-e PIXELFLUX_WAYLAND=true`
103
+
104
+
*`-e PIXELFLUX_WAYLAND=true`
104
105
105
106
**Why use Wayland?**
106
-
***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.
107
-
***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.
107
+
108
+
***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.
109
+
***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.
108
110
109
111
#### GPU Configuration
110
112
111
113
To use hardware acceleration in Wayland mode, we distinguish between the card used for **Rendering** (3D apps/Desktops) and **Encoding** (Video Stream).
112
114
113
115
**Configuration Variables:**
114
-
*`DRINODE`: The path to the GPU used for **Rendering** (EGL).
115
-
*`DRI_NODE`: The path to the GPU used for **Encoding** (VAAPI/NVENC).
116
+
117
+
*`DRINODE`: The path to the GPU used for **Rendering** (EGL).
118
+
*`DRI_NODE`: The path to the GPU used for **Encoding** (VAAPI/NVENC).
116
119
117
120
If both variables point to the same device, the container will automatically enable **Zero Copy** encoding, significantly reducing CPU usage and latency.
118
121
@@ -135,10 +138,12 @@ For Intel and AMD GPUs.
135
138
**Note: Nvidia support is not available for Alpine-based images.**
136
139
137
140
**Prerequisites:**
138
-
1. **Driver:** Proprietary drivers **580 or higher** are required.
139
-
2. **Kernel Parameter:** Set `nvidia-drm.modeset=1` in your host bootloader (GRUB/systemd-boot).
140
-
3. **Initialization:** On headless systems, run `nvidia-modprobe --modeset` on the host (once per boot) to initialize the card.
141
-
4. **Docker Runtime:** Configure the host docker daemon to use the Nvidia runtime:
141
+
142
+
1. **Driver:** Proprietary drivers **580 or higher** are required.
143
+
2. **Kernel Parameter:** Set `nvidia-drm.modeset=1` in your host bootloader (GRUB/systemd-boot).
144
+
3. **Initialization:** On headless systems, run `nvidia-modprobe --modeset` on the host (once per boot) to initialize the card.
145
+
4. **Docker Runtime:** Configure the host docker daemon to use the Nvidia runtime:
@@ -170,16 +176,15 @@ This container is compatible with [SealSkin](https://sealskin.app).
170
176
171
177
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.
172
178
173
-
* **SealSkin Server:** [Get it Here](https://github.com/linuxserver/docker-sealskin)
174
-
* **Browser Extension:** [Chrome](https://chromewebstore.google.com/detail/sealskin-isolation/lclgfmnljgacfdpmmmjmfpdelndbbfhk) and [Firefox](https://addons.mozilla.org/en-US/firefox/addon/sealskin-isolation/).
175
-
* **Mobile App:** [iOS](https://apps.apple.com/us/app/sealskin/id6758210210) and [Android](https://play.google.com/store/apps/details?id=io.linuxserver.sealskin)
176
-
179
+
* **SealSkin Server:** [Get it Here](https://github.com/linuxserver/docker-sealskin)
180
+
* **Browser Extension:** [Chrome](https://chromewebstore.google.com/detail/sealskin-isolation/lclgfmnljgacfdpmmmjmfpdelndbbfhk) and [Firefox](https://addons.mozilla.org/en-US/firefox/addon/sealskin-isolation/).
181
+
* **Mobile App:** [iOS](https://apps.apple.com/us/app/sealskin/id6758210210) and [Android](https://play.google.com/store/apps/details?id=io.linuxserver.sealskin)
177
182
178
183
### Options in all Selkies-based GUI containers
179
184
180
185
This container is based on [Docker Baseimage Selkies](https://github.com/linuxserver/docker-baseimage-selkies).
181
186
182
-
???+ note "Click to expand: Optional Environment Variables"
187
+
??? note "Click to expand: Optional Environment Variables"
183
188
184
189
| Variable | Description |
185
190
| :----: | --- |
@@ -208,15 +213,16 @@ This container is based on [Docker Baseimage Selkies](https://github.com/linuxse
208
213
| WATERMARK_LOCATION | Where to paint the image over the stream integer options below |
209
214
210
215
**`WATERMARK_LOCATION` Options:**
211
-
- **1**: Top Left
212
-
- **2**: Top Right
213
-
- **3**: Bottom Left
214
-
- **4**: Bottom Right
215
-
- **5**: Centered
216
-
- **6**: Animated
216
+
217
+
* **1**: Top Left
218
+
* **2**: Top Right
219
+
* **3**: Bottom Left
220
+
* **4**: Bottom Right
221
+
* **5**: Centered
222
+
* **6**: Animated
217
223
218
224
219
-
???+ note "Click to expand: Optional Run Configurations (DinD & GPU Mounts)"
225
+
??? note "Click to expand: Optional Run Configurations (DinD & GPU Mounts)"
220
226
221
227
| Argument | Description |
222
228
| :----: | --- |
@@ -225,7 +231,7 @@ This container is based on [Docker Baseimage Selkies](https://github.com/linuxse
225
231
| `--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. |
226
232
227
233
228
-
???+ note "Click to expand: Legacy X11 Resolution & Acceleration"
234
+
??? note "Click to expand: Legacy X11 Resolution & Acceleration"
229
235
230
236
**Note:** This section applies only if you are **NOT** using `PIXELFLUX_WAYLAND=true`.
231
237
@@ -235,7 +241,7 @@ This container is based on [Docker Baseimage Selkies](https://github.com/linuxse
235
241
236
242
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:
237
243
238
-
```
244
+
```bash
239
245
-e SELKIES_MANUAL_WIDTH=1920
240
246
-e SELKIES_MANUAL_HEIGHT=1080
241
247
-e MAX_RESOLUTION=1920x1080
@@ -246,16 +252,16 @@ This container is based on [Docker Baseimage Selkies](https://github.com/linuxse
246
252
247
253
To launch the desktop session in a different language, set the `LC_ALL` environment variable. For example:
@@ -267,7 +273,7 @@ Natively installed packages (e.g., via `apt-get install`) will not persist if th
267
273
268
274
To install an application, use the command line inside the container:
269
275
270
-
```
276
+
```bash
271
277
proot-apps install filezilla
272
278
```
273
279
@@ -285,7 +291,7 @@ You can install packages from the system's native repository using the [universa
285
291
286
292
### Advanced Configuration
287
293
288
-
???+ note "Click to expand: Hardening Options"
294
+
??? note "Click to expand: Hardening Options"
289
295
290
296
These variables can be used to lock down the desktop environment for single-application use cases or to restrict user capabilities.
291
297
@@ -307,21 +313,24 @@ You can install packages from the system's native repository using the [universa
307
313
| **`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. |
308
314
309
315
310
-
???+ note "Click to expand: Selkies Application Settings"
316
+
??? note "Click to expand: Selkies Application Settings"
311
317
312
318
Using environment variables every facet of the application can be configured.
313
319
314
320
**Booleans and Locking:**
315
321
Boolean settings accept `true` or `false`. You can also prevent the user from changing a boolean setting in the UI by appending `|locked`.
316
-
* Example: `-e SELKIES_USE_CPU="true|locked"`
322
+
323
+
* Example: `-e SELKIES_USE_CPU="true|locked"`
317
324
318
325
**Enums and Lists:**
319
326
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.
320
-
* Example: `-e SELKIES_ENCODER="jpeg"`
327
+
328
+
* Example: `-e SELKIES_ENCODER="jpeg"`
321
329
322
330
**Ranges:**
323
331
Use a hyphen-separated `min-max` format for a slider, or a single number to lock the value.
324
-
* Example: `-e SELKIES_FRAMERATE="60"`
332
+
333
+
* Example: `-e SELKIES_FRAMERATE="60"`
325
334
326
335
**Manual Resolution Mode:**
327
336
If `SELKIES_MANUAL_WIDTH` or `SELKIES_MANUAL_HEIGHT` are set, the resolution is locked to those values.
0 commit comments