diff --git a/oci/catalog/apps/cadcraft.json b/oci/catalog/apps/cadcraft.json index f17e3aa0..83751f84 100644 --- a/oci/catalog/apps/cadcraft.json +++ b/oci/catalog/apps/cadcraft.json @@ -41,8 +41,8 @@ "Use a trusted HTTPS reverse proxy for browser access. Port 3001 uses the upstream self-signed certificate; port 3000 is for an HTTP reverse-proxy backend.", "The upstream default has no login. Optional CUSTOM_USER and PASSWORD variables enable HTTP basic authentication; do not expose an unauthenticated desktop to untrusted networks.", "/config holds settings and desktop state and is included in Proxmox backups. /storage holds documents and supports a managed volume or an explicitly selected host directory; host directories require separate backups.", - "The default uses software rendering. GPU acceleration and other CPU architectures are not claimed tested by a CPU-only amd64 installation.", - "Without an assigned GPU, an application may ask to switch to CPU rendering. Choose the CPU option; hardware acceleration is not required for the default configuration." + "The default installation draws on the CPU. The advanced installation can assign an Intel or AMD GPU, which the desktop, the application and the video stream then use; NVIDIA is offered when the host has its driver and the NVIDIA Container Toolkit.", + "Without a GPU, an application may ask to switch to CPU rendering. Choose the CPU option; the application remembers it." ], "mini_changelog": [], "display_version": null, @@ -112,6 +112,14 @@ "required": false, "sensitive": true, "source": "upstream-documentation" + }, + { + "name": "LC_ALL", + "example": "", + "required": false, + "sensitive": false, + "source": "upstream-documentation", + "prompt": "Language/locale (e.g. es_ES.UTF-8; translation of every application is not guaranteed)" } ], "volumes": [ @@ -365,6 +373,111 @@ "stability_seconds": 8, "accept_any_status": true, "verify_tls": true + }, + "selkies": { + "base": "FROM ghcr.io/linuxserver/baseimage-selkies:ubunturesolute@sha256:6efa3fd775a552938d862f75975d34c418ad26d028ba2c952da58682cfe1cb47", + "dockerfile_url": "https://raw.githubusercontent.com/junkerderprovinz/artcraft-apps/32bee0dea9bdaf5310c693210bea0d732a129ae8/Dockerfile", + "dockerfile_sha256": "69ab1a81d1696d1bd143a6fa5a121c034ddfb3e83008969340e8cd2413547fe1", + "reviewed_on": "2026-11-04", + "documentation": "https://docs.linuxserver.io/images/docker-baseimage-selkies/", + "nvidia": "available-in-advanced-mode-with-compatible-host-driver-and-toolkit", + "validation": "Intel/AMD tested on a Radeon 680M: GL compositor and VAAPI encoding on the render node" + }, + "device_requests": [], + "optional_devices": [], + "hardware_acceleration": { + "prompt": "Selkies desktop and streaming acceleration", + "default": "none", + "profiles": [ + { + "id": "none", + "label": "No GPU (CPU)", + "device_requests": [], + "environment": [ + { + "name": "AUTO_GPU", + "value": "false" + } + ] + }, + { + "id": "vaapi", + "label": "Intel/AMD (streaming rendering and encoding)", + "device_requests": [ + { + "id": "selkies-render", + "kind": "character-device", + "path_prompt": "Intel/AMD render node", + "host_path_default": "/dev/dri/renderD128", + "container_path_strategy": "same-as-host", + "mode": "0660", + "deny_write": false, + "gid_strategy": "host-device-gid", + "drm_vendor_ids": [ + "0x8086", + "0x1002" + ] + } + ], + "environment": [ + { + "name": "PIXELFLUX_WAYLAND", + "value": "true" + }, + { + "name": "AUTO_GPU", + "value": "false" + } + ], + "environment_from_devices": { + "DRINODE": [ + "selkies-render" + ], + "DRI_NODE": [ + "selkies-render" + ], + "ATTACHED_DEVICES_PERMS": [ + "selkies-render" + ] + } + }, + { + "id": "nvidia", + "label": "NVIDIA (Selkies rendering and NVENC)", + "device_requests": [ + { + "id": "selkies-nvidia", + "kind": "nvidia-runtime", + "device_selection": "all-requested-by-compose" + } + ], + "environment": [ + { + "name": "AUTO_GPU", + "value": "true" + }, + { + "name": "NVIDIA_VISIBLE_DEVICES", + "value": "all" + }, + { + "name": "NVIDIA_DRIVER_CAPABILITIES", + "value": "compute,video,graphics,utility,display" + } + ] + } + ] + }, + "gpu_validation": { + "device_inventory": "host-sysfs-and-stat", + "application_acceleration": "requires-workload-test", + "tone_mapping": "not-implied-by-device-access" + }, + "device_permissions": { + "strategy": "linuxserver-native-init", + "service_user": "abc", + "environment": "ATTACHED_DEVICES_PERMS", + "paths": "all-resolved-selected-character-devices" } }, "adaptations": [ diff --git a/oci/catalog/apps/deckcraft.json b/oci/catalog/apps/deckcraft.json index 9e49abf6..ec0f479f 100644 --- a/oci/catalog/apps/deckcraft.json +++ b/oci/catalog/apps/deckcraft.json @@ -41,8 +41,8 @@ "Use a trusted HTTPS reverse proxy for browser access. Port 3001 uses the upstream self-signed certificate; port 3000 is for an HTTP reverse-proxy backend.", "The upstream default has no login. Optional CUSTOM_USER and PASSWORD variables enable HTTP basic authentication; do not expose an unauthenticated desktop to untrusted networks.", "/config holds settings and desktop state and is included in Proxmox backups. /storage holds documents and supports a managed volume or an explicitly selected host directory; host directories require separate backups.", - "The default uses software rendering. GPU acceleration and other CPU architectures are not claimed tested by a CPU-only amd64 installation.", - "Without an assigned GPU, an application may ask to switch to CPU rendering. Choose the CPU option; hardware acceleration is not required for the default configuration." + "The default installation draws on the CPU. The advanced installation can assign an Intel or AMD GPU, which the desktop, the application and the video stream then use; NVIDIA is offered when the host has its driver and the NVIDIA Container Toolkit.", + "Without a GPU, an application may ask to switch to CPU rendering. Choose the CPU option; the application remembers it." ], "mini_changelog": [], "display_version": null, @@ -112,6 +112,14 @@ "required": false, "sensitive": true, "source": "upstream-documentation" + }, + { + "name": "LC_ALL", + "example": "", + "required": false, + "sensitive": false, + "source": "upstream-documentation", + "prompt": "Language/locale (e.g. es_ES.UTF-8; translation of every application is not guaranteed)" } ], "volumes": [ @@ -365,6 +373,111 @@ "stability_seconds": 8, "accept_any_status": true, "verify_tls": true + }, + "selkies": { + "base": "FROM ghcr.io/linuxserver/baseimage-selkies:ubunturesolute@sha256:6efa3fd775a552938d862f75975d34c418ad26d028ba2c952da58682cfe1cb47", + "dockerfile_url": "https://raw.githubusercontent.com/junkerderprovinz/artcraft-apps/32bee0dea9bdaf5310c693210bea0d732a129ae8/Dockerfile", + "dockerfile_sha256": "69ab1a81d1696d1bd143a6fa5a121c034ddfb3e83008969340e8cd2413547fe1", + "reviewed_on": "2026-11-04", + "documentation": "https://docs.linuxserver.io/images/docker-baseimage-selkies/", + "nvidia": "available-in-advanced-mode-with-compatible-host-driver-and-toolkit", + "validation": "Intel/AMD tested on a Radeon 680M: GL compositor and VAAPI encoding on the render node" + }, + "device_requests": [], + "optional_devices": [], + "hardware_acceleration": { + "prompt": "Selkies desktop and streaming acceleration", + "default": "none", + "profiles": [ + { + "id": "none", + "label": "No GPU (CPU)", + "device_requests": [], + "environment": [ + { + "name": "AUTO_GPU", + "value": "false" + } + ] + }, + { + "id": "vaapi", + "label": "Intel/AMD (streaming rendering and encoding)", + "device_requests": [ + { + "id": "selkies-render", + "kind": "character-device", + "path_prompt": "Intel/AMD render node", + "host_path_default": "/dev/dri/renderD128", + "container_path_strategy": "same-as-host", + "mode": "0660", + "deny_write": false, + "gid_strategy": "host-device-gid", + "drm_vendor_ids": [ + "0x8086", + "0x1002" + ] + } + ], + "environment": [ + { + "name": "PIXELFLUX_WAYLAND", + "value": "true" + }, + { + "name": "AUTO_GPU", + "value": "false" + } + ], + "environment_from_devices": { + "DRINODE": [ + "selkies-render" + ], + "DRI_NODE": [ + "selkies-render" + ], + "ATTACHED_DEVICES_PERMS": [ + "selkies-render" + ] + } + }, + { + "id": "nvidia", + "label": "NVIDIA (Selkies rendering and NVENC)", + "device_requests": [ + { + "id": "selkies-nvidia", + "kind": "nvidia-runtime", + "device_selection": "all-requested-by-compose" + } + ], + "environment": [ + { + "name": "AUTO_GPU", + "value": "true" + }, + { + "name": "NVIDIA_VISIBLE_DEVICES", + "value": "all" + }, + { + "name": "NVIDIA_DRIVER_CAPABILITIES", + "value": "compute,video,graphics,utility,display" + } + ] + } + ] + }, + "gpu_validation": { + "device_inventory": "host-sysfs-and-stat", + "application_acceleration": "requires-workload-test", + "tone_mapping": "not-implied-by-device-access" + }, + "device_permissions": { + "strategy": "linuxserver-native-init", + "service_user": "abc", + "environment": "ATTACHED_DEVICES_PERMS", + "paths": "all-resolved-selected-character-devices" } }, "adaptations": [ diff --git a/oci/catalog/apps/designcraft.json b/oci/catalog/apps/designcraft.json index 1b29acab..816524c8 100644 --- a/oci/catalog/apps/designcraft.json +++ b/oci/catalog/apps/designcraft.json @@ -41,8 +41,8 @@ "Use a trusted HTTPS reverse proxy for browser access. Port 3001 uses the upstream self-signed certificate; port 3000 is for an HTTP reverse-proxy backend.", "The upstream default has no login. Optional CUSTOM_USER and PASSWORD variables enable HTTP basic authentication; do not expose an unauthenticated desktop to untrusted networks.", "/config holds settings and desktop state and is included in Proxmox backups. /storage holds documents and supports a managed volume or an explicitly selected host directory; host directories require separate backups.", - "The default uses software rendering. GPU acceleration and other CPU architectures are not claimed tested by a CPU-only amd64 installation.", - "Without an assigned GPU, an application may ask to switch to CPU rendering. Choose the CPU option; hardware acceleration is not required for the default configuration." + "The default installation draws on the CPU. The advanced installation can assign an Intel or AMD GPU, which the desktop, the application and the video stream then use; NVIDIA is offered when the host has its driver and the NVIDIA Container Toolkit.", + "Without a GPU, an application may ask to switch to CPU rendering. Choose the CPU option; the application remembers it." ], "mini_changelog": [], "display_version": null, @@ -112,6 +112,14 @@ "required": false, "sensitive": true, "source": "upstream-documentation" + }, + { + "name": "LC_ALL", + "example": "", + "required": false, + "sensitive": false, + "source": "upstream-documentation", + "prompt": "Language/locale (e.g. es_ES.UTF-8; translation of every application is not guaranteed)" } ], "volumes": [ @@ -365,6 +373,111 @@ "stability_seconds": 8, "accept_any_status": true, "verify_tls": true + }, + "selkies": { + "base": "FROM ghcr.io/linuxserver/baseimage-selkies:ubunturesolute@sha256:6efa3fd775a552938d862f75975d34c418ad26d028ba2c952da58682cfe1cb47", + "dockerfile_url": "https://raw.githubusercontent.com/junkerderprovinz/artcraft-apps/32bee0dea9bdaf5310c693210bea0d732a129ae8/Dockerfile", + "dockerfile_sha256": "69ab1a81d1696d1bd143a6fa5a121c034ddfb3e83008969340e8cd2413547fe1", + "reviewed_on": "2026-11-04", + "documentation": "https://docs.linuxserver.io/images/docker-baseimage-selkies/", + "nvidia": "available-in-advanced-mode-with-compatible-host-driver-and-toolkit", + "validation": "Intel/AMD tested on a Radeon 680M: GL compositor and VAAPI encoding on the render node" + }, + "device_requests": [], + "optional_devices": [], + "hardware_acceleration": { + "prompt": "Selkies desktop and streaming acceleration", + "default": "none", + "profiles": [ + { + "id": "none", + "label": "No GPU (CPU)", + "device_requests": [], + "environment": [ + { + "name": "AUTO_GPU", + "value": "false" + } + ] + }, + { + "id": "vaapi", + "label": "Intel/AMD (streaming rendering and encoding)", + "device_requests": [ + { + "id": "selkies-render", + "kind": "character-device", + "path_prompt": "Intel/AMD render node", + "host_path_default": "/dev/dri/renderD128", + "container_path_strategy": "same-as-host", + "mode": "0660", + "deny_write": false, + "gid_strategy": "host-device-gid", + "drm_vendor_ids": [ + "0x8086", + "0x1002" + ] + } + ], + "environment": [ + { + "name": "PIXELFLUX_WAYLAND", + "value": "true" + }, + { + "name": "AUTO_GPU", + "value": "false" + } + ], + "environment_from_devices": { + "DRINODE": [ + "selkies-render" + ], + "DRI_NODE": [ + "selkies-render" + ], + "ATTACHED_DEVICES_PERMS": [ + "selkies-render" + ] + } + }, + { + "id": "nvidia", + "label": "NVIDIA (Selkies rendering and NVENC)", + "device_requests": [ + { + "id": "selkies-nvidia", + "kind": "nvidia-runtime", + "device_selection": "all-requested-by-compose" + } + ], + "environment": [ + { + "name": "AUTO_GPU", + "value": "true" + }, + { + "name": "NVIDIA_VISIBLE_DEVICES", + "value": "all" + }, + { + "name": "NVIDIA_DRIVER_CAPABILITIES", + "value": "compute,video,graphics,utility,display" + } + ] + } + ] + }, + "gpu_validation": { + "device_inventory": "host-sysfs-and-stat", + "application_acceleration": "requires-workload-test", + "tone_mapping": "not-implied-by-device-access" + }, + "device_permissions": { + "strategy": "linuxserver-native-init", + "service_user": "abc", + "environment": "ATTACHED_DEVICES_PERMS", + "paths": "all-resolved-selected-character-devices" } }, "adaptations": [ diff --git a/oci/catalog/apps/effectcraft.json b/oci/catalog/apps/effectcraft.json index 83fc3e8d..f2b6ed37 100644 --- a/oci/catalog/apps/effectcraft.json +++ b/oci/catalog/apps/effectcraft.json @@ -41,8 +41,8 @@ "Use a trusted HTTPS reverse proxy for browser access. Port 3001 uses the upstream self-signed certificate; port 3000 is for an HTTP reverse-proxy backend.", "The upstream default has no login. Optional CUSTOM_USER and PASSWORD variables enable HTTP basic authentication; do not expose an unauthenticated desktop to untrusted networks.", "/config holds settings and desktop state and is included in Proxmox backups. /storage holds documents and supports a managed volume or an explicitly selected host directory; host directories require separate backups.", - "The default uses software rendering. GPU acceleration and other CPU architectures are not claimed tested by a CPU-only amd64 installation.", - "Without an assigned GPU, an application may ask to switch to CPU rendering. Choose the CPU option; hardware acceleration is not required for the default configuration." + "The default installation draws on the CPU. The advanced installation can assign an Intel or AMD GPU, which the desktop, the application and the video stream then use; NVIDIA is offered when the host has its driver and the NVIDIA Container Toolkit.", + "Without a GPU, an application may ask to switch to CPU rendering. Choose the CPU option; the application remembers it." ], "mini_changelog": [], "display_version": null, @@ -112,6 +112,14 @@ "required": false, "sensitive": true, "source": "upstream-documentation" + }, + { + "name": "LC_ALL", + "example": "", + "required": false, + "sensitive": false, + "source": "upstream-documentation", + "prompt": "Language/locale (e.g. es_ES.UTF-8; translation of every application is not guaranteed)" } ], "volumes": [ @@ -365,6 +373,111 @@ "stability_seconds": 8, "accept_any_status": true, "verify_tls": true + }, + "selkies": { + "base": "FROM ghcr.io/linuxserver/baseimage-selkies:ubunturesolute@sha256:6efa3fd775a552938d862f75975d34c418ad26d028ba2c952da58682cfe1cb47", + "dockerfile_url": "https://raw.githubusercontent.com/junkerderprovinz/artcraft-apps/32bee0dea9bdaf5310c693210bea0d732a129ae8/Dockerfile", + "dockerfile_sha256": "69ab1a81d1696d1bd143a6fa5a121c034ddfb3e83008969340e8cd2413547fe1", + "reviewed_on": "2026-11-04", + "documentation": "https://docs.linuxserver.io/images/docker-baseimage-selkies/", + "nvidia": "available-in-advanced-mode-with-compatible-host-driver-and-toolkit", + "validation": "Intel/AMD tested on a Radeon 680M: GL compositor and VAAPI encoding on the render node" + }, + "device_requests": [], + "optional_devices": [], + "hardware_acceleration": { + "prompt": "Selkies desktop and streaming acceleration", + "default": "none", + "profiles": [ + { + "id": "none", + "label": "No GPU (CPU)", + "device_requests": [], + "environment": [ + { + "name": "AUTO_GPU", + "value": "false" + } + ] + }, + { + "id": "vaapi", + "label": "Intel/AMD (streaming rendering and encoding)", + "device_requests": [ + { + "id": "selkies-render", + "kind": "character-device", + "path_prompt": "Intel/AMD render node", + "host_path_default": "/dev/dri/renderD128", + "container_path_strategy": "same-as-host", + "mode": "0660", + "deny_write": false, + "gid_strategy": "host-device-gid", + "drm_vendor_ids": [ + "0x8086", + "0x1002" + ] + } + ], + "environment": [ + { + "name": "PIXELFLUX_WAYLAND", + "value": "true" + }, + { + "name": "AUTO_GPU", + "value": "false" + } + ], + "environment_from_devices": { + "DRINODE": [ + "selkies-render" + ], + "DRI_NODE": [ + "selkies-render" + ], + "ATTACHED_DEVICES_PERMS": [ + "selkies-render" + ] + } + }, + { + "id": "nvidia", + "label": "NVIDIA (Selkies rendering and NVENC)", + "device_requests": [ + { + "id": "selkies-nvidia", + "kind": "nvidia-runtime", + "device_selection": "all-requested-by-compose" + } + ], + "environment": [ + { + "name": "AUTO_GPU", + "value": "true" + }, + { + "name": "NVIDIA_VISIBLE_DEVICES", + "value": "all" + }, + { + "name": "NVIDIA_DRIVER_CAPABILITIES", + "value": "compute,video,graphics,utility,display" + } + ] + } + ] + }, + "gpu_validation": { + "device_inventory": "host-sysfs-and-stat", + "application_acceleration": "requires-workload-test", + "tone_mapping": "not-implied-by-device-access" + }, + "device_permissions": { + "strategy": "linuxserver-native-init", + "service_user": "abc", + "environment": "ATTACHED_DEVICES_PERMS", + "paths": "all-resolved-selected-character-devices" } }, "adaptations": [ diff --git a/oci/catalog/apps/figcraft.json b/oci/catalog/apps/figcraft.json index 8ec545a0..80644eb3 100644 --- a/oci/catalog/apps/figcraft.json +++ b/oci/catalog/apps/figcraft.json @@ -41,8 +41,8 @@ "Use a trusted HTTPS reverse proxy for browser access. Port 3001 uses the upstream self-signed certificate; port 3000 is for an HTTP reverse-proxy backend.", "The upstream default has no login. Optional CUSTOM_USER and PASSWORD variables enable HTTP basic authentication; do not expose an unauthenticated desktop to untrusted networks.", "/config holds settings and desktop state and is included in Proxmox backups. /storage holds documents and supports a managed volume or an explicitly selected host directory; host directories require separate backups.", - "The default uses software rendering. GPU acceleration and other CPU architectures are not claimed tested by a CPU-only amd64 installation.", - "Without an assigned GPU, an application may ask to switch to CPU rendering. Choose the CPU option; hardware acceleration is not required for the default configuration." + "The default installation draws on the CPU. The advanced installation can assign an Intel or AMD GPU, which the desktop, the application and the video stream then use; NVIDIA is offered when the host has its driver and the NVIDIA Container Toolkit.", + "Without a GPU, an application may ask to switch to CPU rendering. Choose the CPU option; the application remembers it." ], "mini_changelog": [], "display_version": null, @@ -112,6 +112,14 @@ "required": false, "sensitive": true, "source": "upstream-documentation" + }, + { + "name": "LC_ALL", + "example": "", + "required": false, + "sensitive": false, + "source": "upstream-documentation", + "prompt": "Language/locale (e.g. es_ES.UTF-8; translation of every application is not guaranteed)" } ], "volumes": [ @@ -365,6 +373,111 @@ "stability_seconds": 8, "accept_any_status": true, "verify_tls": true + }, + "selkies": { + "base": "FROM ghcr.io/linuxserver/baseimage-selkies:ubunturesolute@sha256:6efa3fd775a552938d862f75975d34c418ad26d028ba2c952da58682cfe1cb47", + "dockerfile_url": "https://raw.githubusercontent.com/junkerderprovinz/artcraft-apps/32bee0dea9bdaf5310c693210bea0d732a129ae8/Dockerfile", + "dockerfile_sha256": "69ab1a81d1696d1bd143a6fa5a121c034ddfb3e83008969340e8cd2413547fe1", + "reviewed_on": "2026-11-04", + "documentation": "https://docs.linuxserver.io/images/docker-baseimage-selkies/", + "nvidia": "available-in-advanced-mode-with-compatible-host-driver-and-toolkit", + "validation": "Intel/AMD tested on a Radeon 680M: GL compositor and VAAPI encoding on the render node" + }, + "device_requests": [], + "optional_devices": [], + "hardware_acceleration": { + "prompt": "Selkies desktop and streaming acceleration", + "default": "none", + "profiles": [ + { + "id": "none", + "label": "No GPU (CPU)", + "device_requests": [], + "environment": [ + { + "name": "AUTO_GPU", + "value": "false" + } + ] + }, + { + "id": "vaapi", + "label": "Intel/AMD (streaming rendering and encoding)", + "device_requests": [ + { + "id": "selkies-render", + "kind": "character-device", + "path_prompt": "Intel/AMD render node", + "host_path_default": "/dev/dri/renderD128", + "container_path_strategy": "same-as-host", + "mode": "0660", + "deny_write": false, + "gid_strategy": "host-device-gid", + "drm_vendor_ids": [ + "0x8086", + "0x1002" + ] + } + ], + "environment": [ + { + "name": "PIXELFLUX_WAYLAND", + "value": "true" + }, + { + "name": "AUTO_GPU", + "value": "false" + } + ], + "environment_from_devices": { + "DRINODE": [ + "selkies-render" + ], + "DRI_NODE": [ + "selkies-render" + ], + "ATTACHED_DEVICES_PERMS": [ + "selkies-render" + ] + } + }, + { + "id": "nvidia", + "label": "NVIDIA (Selkies rendering and NVENC)", + "device_requests": [ + { + "id": "selkies-nvidia", + "kind": "nvidia-runtime", + "device_selection": "all-requested-by-compose" + } + ], + "environment": [ + { + "name": "AUTO_GPU", + "value": "true" + }, + { + "name": "NVIDIA_VISIBLE_DEVICES", + "value": "all" + }, + { + "name": "NVIDIA_DRIVER_CAPABILITIES", + "value": "compute,video,graphics,utility,display" + } + ] + } + ] + }, + "gpu_validation": { + "device_inventory": "host-sysfs-and-stat", + "application_acceleration": "requires-workload-test", + "tone_mapping": "not-implied-by-device-access" + }, + "device_permissions": { + "strategy": "linuxserver-native-init", + "service_user": "abc", + "environment": "ATTACHED_DEVICES_PERMS", + "paths": "all-resolved-selected-character-devices" } }, "adaptations": [ diff --git a/oci/catalog/apps/filmcraft.json b/oci/catalog/apps/filmcraft.json index 184c4169..8289da25 100644 --- a/oci/catalog/apps/filmcraft.json +++ b/oci/catalog/apps/filmcraft.json @@ -41,8 +41,8 @@ "Use a trusted HTTPS reverse proxy for browser access. Port 3001 uses the upstream self-signed certificate; port 3000 is for an HTTP reverse-proxy backend.", "The upstream default has no login. Optional CUSTOM_USER and PASSWORD variables enable HTTP basic authentication; do not expose an unauthenticated desktop to untrusted networks.", "/config holds settings and desktop state and is included in Proxmox backups. /storage holds documents and supports a managed volume or an explicitly selected host directory; host directories require separate backups.", - "The default uses software rendering. GPU acceleration and other CPU architectures are not claimed tested by a CPU-only amd64 installation.", - "Without an assigned GPU, an application may ask to switch to CPU rendering. Choose the CPU option; hardware acceleration is not required for the default configuration." + "The default installation draws on the CPU. The advanced installation can assign an Intel or AMD GPU, which the desktop, the application and the video stream then use; NVIDIA is offered when the host has its driver and the NVIDIA Container Toolkit.", + "Without a GPU, an application may ask to switch to CPU rendering. Choose the CPU option; the application remembers it." ], "mini_changelog": [], "display_version": null, @@ -112,6 +112,14 @@ "required": false, "sensitive": true, "source": "upstream-documentation" + }, + { + "name": "LC_ALL", + "example": "", + "required": false, + "sensitive": false, + "source": "upstream-documentation", + "prompt": "Language/locale (e.g. es_ES.UTF-8; translation of every application is not guaranteed)" } ], "volumes": [ @@ -365,6 +373,111 @@ "stability_seconds": 8, "accept_any_status": true, "verify_tls": true + }, + "selkies": { + "base": "FROM ghcr.io/linuxserver/baseimage-selkies:ubunturesolute@sha256:6efa3fd775a552938d862f75975d34c418ad26d028ba2c952da58682cfe1cb47", + "dockerfile_url": "https://raw.githubusercontent.com/junkerderprovinz/artcraft-apps/32bee0dea9bdaf5310c693210bea0d732a129ae8/Dockerfile", + "dockerfile_sha256": "69ab1a81d1696d1bd143a6fa5a121c034ddfb3e83008969340e8cd2413547fe1", + "reviewed_on": "2026-11-04", + "documentation": "https://docs.linuxserver.io/images/docker-baseimage-selkies/", + "nvidia": "available-in-advanced-mode-with-compatible-host-driver-and-toolkit", + "validation": "Intel/AMD tested on a Radeon 680M: GL compositor and VAAPI encoding on the render node" + }, + "device_requests": [], + "optional_devices": [], + "hardware_acceleration": { + "prompt": "Selkies desktop and streaming acceleration", + "default": "none", + "profiles": [ + { + "id": "none", + "label": "No GPU (CPU)", + "device_requests": [], + "environment": [ + { + "name": "AUTO_GPU", + "value": "false" + } + ] + }, + { + "id": "vaapi", + "label": "Intel/AMD (streaming rendering and encoding)", + "device_requests": [ + { + "id": "selkies-render", + "kind": "character-device", + "path_prompt": "Intel/AMD render node", + "host_path_default": "/dev/dri/renderD128", + "container_path_strategy": "same-as-host", + "mode": "0660", + "deny_write": false, + "gid_strategy": "host-device-gid", + "drm_vendor_ids": [ + "0x8086", + "0x1002" + ] + } + ], + "environment": [ + { + "name": "PIXELFLUX_WAYLAND", + "value": "true" + }, + { + "name": "AUTO_GPU", + "value": "false" + } + ], + "environment_from_devices": { + "DRINODE": [ + "selkies-render" + ], + "DRI_NODE": [ + "selkies-render" + ], + "ATTACHED_DEVICES_PERMS": [ + "selkies-render" + ] + } + }, + { + "id": "nvidia", + "label": "NVIDIA (Selkies rendering and NVENC)", + "device_requests": [ + { + "id": "selkies-nvidia", + "kind": "nvidia-runtime", + "device_selection": "all-requested-by-compose" + } + ], + "environment": [ + { + "name": "AUTO_GPU", + "value": "true" + }, + { + "name": "NVIDIA_VISIBLE_DEVICES", + "value": "all" + }, + { + "name": "NVIDIA_DRIVER_CAPABILITIES", + "value": "compute,video,graphics,utility,display" + } + ] + } + ] + }, + "gpu_validation": { + "device_inventory": "host-sysfs-and-stat", + "application_acceleration": "requires-workload-test", + "tone_mapping": "not-implied-by-device-access" + }, + "device_permissions": { + "strategy": "linuxserver-native-init", + "service_user": "abc", + "environment": "ATTACHED_DEVICES_PERMS", + "paths": "all-resolved-selected-character-devices" } }, "adaptations": [ diff --git a/oci/catalog/apps/gridcraft.json b/oci/catalog/apps/gridcraft.json index 6d7c9a0a..6920328e 100644 --- a/oci/catalog/apps/gridcraft.json +++ b/oci/catalog/apps/gridcraft.json @@ -41,8 +41,8 @@ "Use a trusted HTTPS reverse proxy for browser access. Port 3001 uses the upstream self-signed certificate; port 3000 is for an HTTP reverse-proxy backend.", "The upstream default has no login. Optional CUSTOM_USER and PASSWORD variables enable HTTP basic authentication; do not expose an unauthenticated desktop to untrusted networks.", "/config holds settings and desktop state and is included in Proxmox backups. /storage holds documents and supports a managed volume or an explicitly selected host directory; host directories require separate backups.", - "The default uses software rendering. GPU acceleration and other CPU architectures are not claimed tested by a CPU-only amd64 installation.", - "Without an assigned GPU, an application may ask to switch to CPU rendering. Choose the CPU option; hardware acceleration is not required for the default configuration." + "The default installation draws on the CPU. The advanced installation can assign an Intel or AMD GPU, which the desktop, the application and the video stream then use; NVIDIA is offered when the host has its driver and the NVIDIA Container Toolkit.", + "Without a GPU, an application may ask to switch to CPU rendering. Choose the CPU option; the application remembers it." ], "mini_changelog": [], "display_version": null, @@ -112,6 +112,14 @@ "required": false, "sensitive": true, "source": "upstream-documentation" + }, + { + "name": "LC_ALL", + "example": "", + "required": false, + "sensitive": false, + "source": "upstream-documentation", + "prompt": "Language/locale (e.g. es_ES.UTF-8; translation of every application is not guaranteed)" } ], "volumes": [ @@ -365,6 +373,111 @@ "stability_seconds": 8, "accept_any_status": true, "verify_tls": true + }, + "selkies": { + "base": "FROM ghcr.io/linuxserver/baseimage-selkies:ubunturesolute@sha256:6efa3fd775a552938d862f75975d34c418ad26d028ba2c952da58682cfe1cb47", + "dockerfile_url": "https://raw.githubusercontent.com/junkerderprovinz/artcraft-apps/32bee0dea9bdaf5310c693210bea0d732a129ae8/Dockerfile", + "dockerfile_sha256": "69ab1a81d1696d1bd143a6fa5a121c034ddfb3e83008969340e8cd2413547fe1", + "reviewed_on": "2026-11-04", + "documentation": "https://docs.linuxserver.io/images/docker-baseimage-selkies/", + "nvidia": "available-in-advanced-mode-with-compatible-host-driver-and-toolkit", + "validation": "Intel/AMD tested on a Radeon 680M: GL compositor and VAAPI encoding on the render node" + }, + "device_requests": [], + "optional_devices": [], + "hardware_acceleration": { + "prompt": "Selkies desktop and streaming acceleration", + "default": "none", + "profiles": [ + { + "id": "none", + "label": "No GPU (CPU)", + "device_requests": [], + "environment": [ + { + "name": "AUTO_GPU", + "value": "false" + } + ] + }, + { + "id": "vaapi", + "label": "Intel/AMD (streaming rendering and encoding)", + "device_requests": [ + { + "id": "selkies-render", + "kind": "character-device", + "path_prompt": "Intel/AMD render node", + "host_path_default": "/dev/dri/renderD128", + "container_path_strategy": "same-as-host", + "mode": "0660", + "deny_write": false, + "gid_strategy": "host-device-gid", + "drm_vendor_ids": [ + "0x8086", + "0x1002" + ] + } + ], + "environment": [ + { + "name": "PIXELFLUX_WAYLAND", + "value": "true" + }, + { + "name": "AUTO_GPU", + "value": "false" + } + ], + "environment_from_devices": { + "DRINODE": [ + "selkies-render" + ], + "DRI_NODE": [ + "selkies-render" + ], + "ATTACHED_DEVICES_PERMS": [ + "selkies-render" + ] + } + }, + { + "id": "nvidia", + "label": "NVIDIA (Selkies rendering and NVENC)", + "device_requests": [ + { + "id": "selkies-nvidia", + "kind": "nvidia-runtime", + "device_selection": "all-requested-by-compose" + } + ], + "environment": [ + { + "name": "AUTO_GPU", + "value": "true" + }, + { + "name": "NVIDIA_VISIBLE_DEVICES", + "value": "all" + }, + { + "name": "NVIDIA_DRIVER_CAPABILITIES", + "value": "compute,video,graphics,utility,display" + } + ] + } + ] + }, + "gpu_validation": { + "device_inventory": "host-sysfs-and-stat", + "application_acceleration": "requires-workload-test", + "tone_mapping": "not-implied-by-device-access" + }, + "device_permissions": { + "strategy": "linuxserver-native-init", + "service_user": "abc", + "environment": "ATTACHED_DEVICES_PERMS", + "paths": "all-resolved-selected-character-devices" } }, "adaptations": [ diff --git a/oci/catalog/apps/lightcraft.json b/oci/catalog/apps/lightcraft.json index 3a9e20ab..afc0582e 100644 --- a/oci/catalog/apps/lightcraft.json +++ b/oci/catalog/apps/lightcraft.json @@ -41,8 +41,8 @@ "Use a trusted HTTPS reverse proxy for browser access. Port 3001 uses the upstream self-signed certificate; port 3000 is for an HTTP reverse-proxy backend.", "The upstream default has no login. Optional CUSTOM_USER and PASSWORD variables enable HTTP basic authentication; do not expose an unauthenticated desktop to untrusted networks.", "/config holds settings and desktop state and is included in Proxmox backups. /storage holds documents and supports a managed volume or an explicitly selected host directory; host directories require separate backups.", - "The default uses software rendering. GPU acceleration and other CPU architectures are not claimed tested by a CPU-only amd64 installation.", - "Without an assigned GPU, an application may ask to switch to CPU rendering. Choose the CPU option; hardware acceleration is not required for the default configuration." + "The default installation draws on the CPU. The advanced installation can assign an Intel or AMD GPU, which the desktop, the application and the video stream then use; NVIDIA is offered when the host has its driver and the NVIDIA Container Toolkit.", + "Without a GPU, an application may ask to switch to CPU rendering. Choose the CPU option; the application remembers it." ], "mini_changelog": [], "display_version": null, @@ -112,6 +112,14 @@ "required": false, "sensitive": true, "source": "upstream-documentation" + }, + { + "name": "LC_ALL", + "example": "", + "required": false, + "sensitive": false, + "source": "upstream-documentation", + "prompt": "Language/locale (e.g. es_ES.UTF-8; translation of every application is not guaranteed)" } ], "volumes": [ @@ -365,6 +373,111 @@ "stability_seconds": 8, "accept_any_status": true, "verify_tls": true + }, + "selkies": { + "base": "FROM ghcr.io/linuxserver/baseimage-selkies:ubunturesolute@sha256:6efa3fd775a552938d862f75975d34c418ad26d028ba2c952da58682cfe1cb47", + "dockerfile_url": "https://raw.githubusercontent.com/junkerderprovinz/artcraft-apps/32bee0dea9bdaf5310c693210bea0d732a129ae8/Dockerfile", + "dockerfile_sha256": "69ab1a81d1696d1bd143a6fa5a121c034ddfb3e83008969340e8cd2413547fe1", + "reviewed_on": "2026-11-04", + "documentation": "https://docs.linuxserver.io/images/docker-baseimage-selkies/", + "nvidia": "available-in-advanced-mode-with-compatible-host-driver-and-toolkit", + "validation": "Intel/AMD tested on a Radeon 680M: GL compositor and VAAPI encoding on the render node" + }, + "device_requests": [], + "optional_devices": [], + "hardware_acceleration": { + "prompt": "Selkies desktop and streaming acceleration", + "default": "none", + "profiles": [ + { + "id": "none", + "label": "No GPU (CPU)", + "device_requests": [], + "environment": [ + { + "name": "AUTO_GPU", + "value": "false" + } + ] + }, + { + "id": "vaapi", + "label": "Intel/AMD (streaming rendering and encoding)", + "device_requests": [ + { + "id": "selkies-render", + "kind": "character-device", + "path_prompt": "Intel/AMD render node", + "host_path_default": "/dev/dri/renderD128", + "container_path_strategy": "same-as-host", + "mode": "0660", + "deny_write": false, + "gid_strategy": "host-device-gid", + "drm_vendor_ids": [ + "0x8086", + "0x1002" + ] + } + ], + "environment": [ + { + "name": "PIXELFLUX_WAYLAND", + "value": "true" + }, + { + "name": "AUTO_GPU", + "value": "false" + } + ], + "environment_from_devices": { + "DRINODE": [ + "selkies-render" + ], + "DRI_NODE": [ + "selkies-render" + ], + "ATTACHED_DEVICES_PERMS": [ + "selkies-render" + ] + } + }, + { + "id": "nvidia", + "label": "NVIDIA (Selkies rendering and NVENC)", + "device_requests": [ + { + "id": "selkies-nvidia", + "kind": "nvidia-runtime", + "device_selection": "all-requested-by-compose" + } + ], + "environment": [ + { + "name": "AUTO_GPU", + "value": "true" + }, + { + "name": "NVIDIA_VISIBLE_DEVICES", + "value": "all" + }, + { + "name": "NVIDIA_DRIVER_CAPABILITIES", + "value": "compute,video,graphics,utility,display" + } + ] + } + ] + }, + "gpu_validation": { + "device_inventory": "host-sysfs-and-stat", + "application_acceleration": "requires-workload-test", + "tone_mapping": "not-implied-by-device-access" + }, + "device_permissions": { + "strategy": "linuxserver-native-init", + "service_user": "abc", + "environment": "ATTACHED_DEVICES_PERMS", + "paths": "all-resolved-selected-character-devices" } }, "adaptations": [ diff --git a/oci/catalog/apps/pdfcraft.json b/oci/catalog/apps/pdfcraft.json index 9d512156..57d452a1 100644 --- a/oci/catalog/apps/pdfcraft.json +++ b/oci/catalog/apps/pdfcraft.json @@ -41,8 +41,8 @@ "Use a trusted HTTPS reverse proxy for browser access. Port 3001 uses the upstream self-signed certificate; port 3000 is for an HTTP reverse-proxy backend.", "The upstream default has no login. Optional CUSTOM_USER and PASSWORD variables enable HTTP basic authentication; do not expose an unauthenticated desktop to untrusted networks.", "/config holds settings and desktop state and is included in Proxmox backups. /storage holds documents and supports a managed volume or an explicitly selected host directory; host directories require separate backups.", - "The default uses software rendering. GPU acceleration and other CPU architectures are not claimed tested by a CPU-only amd64 installation.", - "Without an assigned GPU, an application may ask to switch to CPU rendering. Choose the CPU option; hardware acceleration is not required for the default configuration." + "The default installation draws on the CPU. The advanced installation can assign an Intel or AMD GPU, which the desktop, the application and the video stream then use; NVIDIA is offered when the host has its driver and the NVIDIA Container Toolkit.", + "Without a GPU, an application may ask to switch to CPU rendering. Choose the CPU option; the application remembers it." ], "mini_changelog": [], "display_version": null, @@ -112,6 +112,14 @@ "required": false, "sensitive": true, "source": "upstream-documentation" + }, + { + "name": "LC_ALL", + "example": "", + "required": false, + "sensitive": false, + "source": "upstream-documentation", + "prompt": "Language/locale (e.g. es_ES.UTF-8; translation of every application is not guaranteed)" } ], "volumes": [ @@ -365,6 +373,111 @@ "stability_seconds": 8, "accept_any_status": true, "verify_tls": true + }, + "selkies": { + "base": "FROM ghcr.io/linuxserver/baseimage-selkies:ubunturesolute@sha256:6efa3fd775a552938d862f75975d34c418ad26d028ba2c952da58682cfe1cb47", + "dockerfile_url": "https://raw.githubusercontent.com/junkerderprovinz/artcraft-apps/32bee0dea9bdaf5310c693210bea0d732a129ae8/Dockerfile", + "dockerfile_sha256": "69ab1a81d1696d1bd143a6fa5a121c034ddfb3e83008969340e8cd2413547fe1", + "reviewed_on": "2026-11-04", + "documentation": "https://docs.linuxserver.io/images/docker-baseimage-selkies/", + "nvidia": "available-in-advanced-mode-with-compatible-host-driver-and-toolkit", + "validation": "Intel/AMD tested on a Radeon 680M: GL compositor and VAAPI encoding on the render node" + }, + "device_requests": [], + "optional_devices": [], + "hardware_acceleration": { + "prompt": "Selkies desktop and streaming acceleration", + "default": "none", + "profiles": [ + { + "id": "none", + "label": "No GPU (CPU)", + "device_requests": [], + "environment": [ + { + "name": "AUTO_GPU", + "value": "false" + } + ] + }, + { + "id": "vaapi", + "label": "Intel/AMD (streaming rendering and encoding)", + "device_requests": [ + { + "id": "selkies-render", + "kind": "character-device", + "path_prompt": "Intel/AMD render node", + "host_path_default": "/dev/dri/renderD128", + "container_path_strategy": "same-as-host", + "mode": "0660", + "deny_write": false, + "gid_strategy": "host-device-gid", + "drm_vendor_ids": [ + "0x8086", + "0x1002" + ] + } + ], + "environment": [ + { + "name": "PIXELFLUX_WAYLAND", + "value": "true" + }, + { + "name": "AUTO_GPU", + "value": "false" + } + ], + "environment_from_devices": { + "DRINODE": [ + "selkies-render" + ], + "DRI_NODE": [ + "selkies-render" + ], + "ATTACHED_DEVICES_PERMS": [ + "selkies-render" + ] + } + }, + { + "id": "nvidia", + "label": "NVIDIA (Selkies rendering and NVENC)", + "device_requests": [ + { + "id": "selkies-nvidia", + "kind": "nvidia-runtime", + "device_selection": "all-requested-by-compose" + } + ], + "environment": [ + { + "name": "AUTO_GPU", + "value": "true" + }, + { + "name": "NVIDIA_VISIBLE_DEVICES", + "value": "all" + }, + { + "name": "NVIDIA_DRIVER_CAPABILITIES", + "value": "compute,video,graphics,utility,display" + } + ] + } + ] + }, + "gpu_validation": { + "device_inventory": "host-sysfs-and-stat", + "application_acceleration": "requires-workload-test", + "tone_mapping": "not-implied-by-device-access" + }, + "device_permissions": { + "strategy": "linuxserver-native-init", + "service_user": "abc", + "environment": "ATTACHED_DEVICES_PERMS", + "paths": "all-resolved-selected-character-devices" } }, "adaptations": [ diff --git a/oci/catalog/apps/photocraft.json b/oci/catalog/apps/photocraft.json index 57ea1fc1..7d95f12f 100644 --- a/oci/catalog/apps/photocraft.json +++ b/oci/catalog/apps/photocraft.json @@ -41,8 +41,8 @@ "Use a trusted HTTPS reverse proxy for browser access. Port 3001 uses the upstream self-signed certificate; port 3000 is for an HTTP reverse-proxy backend.", "The upstream default has no login. Optional CUSTOM_USER and PASSWORD variables enable HTTP basic authentication; do not expose an unauthenticated desktop to untrusted networks.", "/config holds settings and desktop state and is included in Proxmox backups. /storage holds documents and supports a managed volume or an explicitly selected host directory; host directories require separate backups.", - "The default uses software rendering. GPU acceleration and other CPU architectures are not claimed tested by a CPU-only amd64 installation.", - "Without an assigned GPU, an application may ask to switch to CPU rendering. Choose the CPU option; hardware acceleration is not required for the default configuration." + "The default installation draws on the CPU. The advanced installation can assign an Intel or AMD GPU, which the desktop, the application and the video stream then use; NVIDIA is offered when the host has its driver and the NVIDIA Container Toolkit.", + "Without a GPU, an application may ask to switch to CPU rendering. Choose the CPU option; the application remembers it." ], "mini_changelog": [], "display_version": null, @@ -112,6 +112,14 @@ "required": false, "sensitive": true, "source": "upstream-documentation" + }, + { + "name": "LC_ALL", + "example": "", + "required": false, + "sensitive": false, + "source": "upstream-documentation", + "prompt": "Language/locale (e.g. es_ES.UTF-8; translation of every application is not guaranteed)" } ], "volumes": [ @@ -365,6 +373,111 @@ "stability_seconds": 8, "accept_any_status": true, "verify_tls": true + }, + "selkies": { + "base": "FROM ghcr.io/linuxserver/baseimage-selkies:ubunturesolute@sha256:6efa3fd775a552938d862f75975d34c418ad26d028ba2c952da58682cfe1cb47", + "dockerfile_url": "https://raw.githubusercontent.com/junkerderprovinz/artcraft-apps/32bee0dea9bdaf5310c693210bea0d732a129ae8/Dockerfile", + "dockerfile_sha256": "69ab1a81d1696d1bd143a6fa5a121c034ddfb3e83008969340e8cd2413547fe1", + "reviewed_on": "2026-11-04", + "documentation": "https://docs.linuxserver.io/images/docker-baseimage-selkies/", + "nvidia": "available-in-advanced-mode-with-compatible-host-driver-and-toolkit", + "validation": "Intel/AMD tested on a Radeon 680M: GL compositor and VAAPI encoding on the render node" + }, + "device_requests": [], + "optional_devices": [], + "hardware_acceleration": { + "prompt": "Selkies desktop and streaming acceleration", + "default": "none", + "profiles": [ + { + "id": "none", + "label": "No GPU (CPU)", + "device_requests": [], + "environment": [ + { + "name": "AUTO_GPU", + "value": "false" + } + ] + }, + { + "id": "vaapi", + "label": "Intel/AMD (streaming rendering and encoding)", + "device_requests": [ + { + "id": "selkies-render", + "kind": "character-device", + "path_prompt": "Intel/AMD render node", + "host_path_default": "/dev/dri/renderD128", + "container_path_strategy": "same-as-host", + "mode": "0660", + "deny_write": false, + "gid_strategy": "host-device-gid", + "drm_vendor_ids": [ + "0x8086", + "0x1002" + ] + } + ], + "environment": [ + { + "name": "PIXELFLUX_WAYLAND", + "value": "true" + }, + { + "name": "AUTO_GPU", + "value": "false" + } + ], + "environment_from_devices": { + "DRINODE": [ + "selkies-render" + ], + "DRI_NODE": [ + "selkies-render" + ], + "ATTACHED_DEVICES_PERMS": [ + "selkies-render" + ] + } + }, + { + "id": "nvidia", + "label": "NVIDIA (Selkies rendering and NVENC)", + "device_requests": [ + { + "id": "selkies-nvidia", + "kind": "nvidia-runtime", + "device_selection": "all-requested-by-compose" + } + ], + "environment": [ + { + "name": "AUTO_GPU", + "value": "true" + }, + { + "name": "NVIDIA_VISIBLE_DEVICES", + "value": "all" + }, + { + "name": "NVIDIA_DRIVER_CAPABILITIES", + "value": "compute,video,graphics,utility,display" + } + ] + } + ] + }, + "gpu_validation": { + "device_inventory": "host-sysfs-and-stat", + "application_acceleration": "requires-workload-test", + "tone_mapping": "not-implied-by-device-access" + }, + "device_permissions": { + "strategy": "linuxserver-native-init", + "service_user": "abc", + "environment": "ATTACHED_DEVICES_PERMS", + "paths": "all-resolved-selected-character-devices" } }, "adaptations": [ diff --git a/oci/catalog/apps/soundcraft.json b/oci/catalog/apps/soundcraft.json index 9eb74e04..1ad3ac3c 100644 --- a/oci/catalog/apps/soundcraft.json +++ b/oci/catalog/apps/soundcraft.json @@ -41,8 +41,8 @@ "Use a trusted HTTPS reverse proxy for browser access. Port 3001 uses the upstream self-signed certificate; port 3000 is for an HTTP reverse-proxy backend.", "The upstream default has no login. Optional CUSTOM_USER and PASSWORD variables enable HTTP basic authentication; do not expose an unauthenticated desktop to untrusted networks.", "/config holds settings and desktop state and is included in Proxmox backups. /storage holds documents and supports a managed volume or an explicitly selected host directory; host directories require separate backups.", - "The default uses software rendering. GPU acceleration and other CPU architectures are not claimed tested by a CPU-only amd64 installation.", - "Without an assigned GPU, an application may ask to switch to CPU rendering. Choose the CPU option; hardware acceleration is not required for the default configuration." + "The default installation draws on the CPU. The advanced installation can assign an Intel or AMD GPU, which the desktop, the application and the video stream then use; NVIDIA is offered when the host has its driver and the NVIDIA Container Toolkit.", + "Without a GPU, an application may ask to switch to CPU rendering. Choose the CPU option; the application remembers it." ], "mini_changelog": [], "display_version": null, @@ -112,6 +112,14 @@ "required": false, "sensitive": true, "source": "upstream-documentation" + }, + { + "name": "LC_ALL", + "example": "", + "required": false, + "sensitive": false, + "source": "upstream-documentation", + "prompt": "Language/locale (e.g. es_ES.UTF-8; translation of every application is not guaranteed)" } ], "volumes": [ @@ -365,6 +373,111 @@ "stability_seconds": 8, "accept_any_status": true, "verify_tls": true + }, + "selkies": { + "base": "FROM ghcr.io/linuxserver/baseimage-selkies:ubunturesolute@sha256:6efa3fd775a552938d862f75975d34c418ad26d028ba2c952da58682cfe1cb47", + "dockerfile_url": "https://raw.githubusercontent.com/junkerderprovinz/artcraft-apps/32bee0dea9bdaf5310c693210bea0d732a129ae8/Dockerfile", + "dockerfile_sha256": "69ab1a81d1696d1bd143a6fa5a121c034ddfb3e83008969340e8cd2413547fe1", + "reviewed_on": "2026-11-04", + "documentation": "https://docs.linuxserver.io/images/docker-baseimage-selkies/", + "nvidia": "available-in-advanced-mode-with-compatible-host-driver-and-toolkit", + "validation": "Intel/AMD tested on a Radeon 680M: GL compositor and VAAPI encoding on the render node" + }, + "device_requests": [], + "optional_devices": [], + "hardware_acceleration": { + "prompt": "Selkies desktop and streaming acceleration", + "default": "none", + "profiles": [ + { + "id": "none", + "label": "No GPU (CPU)", + "device_requests": [], + "environment": [ + { + "name": "AUTO_GPU", + "value": "false" + } + ] + }, + { + "id": "vaapi", + "label": "Intel/AMD (streaming rendering and encoding)", + "device_requests": [ + { + "id": "selkies-render", + "kind": "character-device", + "path_prompt": "Intel/AMD render node", + "host_path_default": "/dev/dri/renderD128", + "container_path_strategy": "same-as-host", + "mode": "0660", + "deny_write": false, + "gid_strategy": "host-device-gid", + "drm_vendor_ids": [ + "0x8086", + "0x1002" + ] + } + ], + "environment": [ + { + "name": "PIXELFLUX_WAYLAND", + "value": "true" + }, + { + "name": "AUTO_GPU", + "value": "false" + } + ], + "environment_from_devices": { + "DRINODE": [ + "selkies-render" + ], + "DRI_NODE": [ + "selkies-render" + ], + "ATTACHED_DEVICES_PERMS": [ + "selkies-render" + ] + } + }, + { + "id": "nvidia", + "label": "NVIDIA (Selkies rendering and NVENC)", + "device_requests": [ + { + "id": "selkies-nvidia", + "kind": "nvidia-runtime", + "device_selection": "all-requested-by-compose" + } + ], + "environment": [ + { + "name": "AUTO_GPU", + "value": "true" + }, + { + "name": "NVIDIA_VISIBLE_DEVICES", + "value": "all" + }, + { + "name": "NVIDIA_DRIVER_CAPABILITIES", + "value": "compute,video,graphics,utility,display" + } + ] + } + ] + }, + "gpu_validation": { + "device_inventory": "host-sysfs-and-stat", + "application_acceleration": "requires-workload-test", + "tone_mapping": "not-implied-by-device-access" + }, + "device_permissions": { + "strategy": "linuxserver-native-init", + "service_user": "abc", + "environment": "ATTACHED_DEVICES_PERMS", + "paths": "all-resolved-selected-character-devices" } }, "adaptations": [ diff --git a/oci/catalog/apps/vectorcraft.json b/oci/catalog/apps/vectorcraft.json index 29db86d6..20ae3977 100644 --- a/oci/catalog/apps/vectorcraft.json +++ b/oci/catalog/apps/vectorcraft.json @@ -41,8 +41,8 @@ "Use a trusted HTTPS reverse proxy for browser access. Port 3001 uses the upstream self-signed certificate; port 3000 is for an HTTP reverse-proxy backend.", "The upstream default has no login. Optional CUSTOM_USER and PASSWORD variables enable HTTP basic authentication; do not expose an unauthenticated desktop to untrusted networks.", "/config holds settings and desktop state and is included in Proxmox backups. /storage holds documents and supports a managed volume or an explicitly selected host directory; host directories require separate backups.", - "The default uses software rendering. GPU acceleration and other CPU architectures are not claimed tested by a CPU-only amd64 installation.", - "Without an assigned GPU, an application may ask to switch to CPU rendering. Choose the CPU option; hardware acceleration is not required for the default configuration." + "The default installation draws on the CPU. The advanced installation can assign an Intel or AMD GPU, which the desktop, the application and the video stream then use; NVIDIA is offered when the host has its driver and the NVIDIA Container Toolkit.", + "Without a GPU, an application may ask to switch to CPU rendering. Choose the CPU option; the application remembers it." ], "mini_changelog": [], "display_version": null, @@ -112,6 +112,14 @@ "required": false, "sensitive": true, "source": "upstream-documentation" + }, + { + "name": "LC_ALL", + "example": "", + "required": false, + "sensitive": false, + "source": "upstream-documentation", + "prompt": "Language/locale (e.g. es_ES.UTF-8; translation of every application is not guaranteed)" } ], "volumes": [ @@ -365,6 +373,111 @@ "stability_seconds": 8, "accept_any_status": true, "verify_tls": true + }, + "selkies": { + "base": "FROM ghcr.io/linuxserver/baseimage-selkies:ubunturesolute@sha256:6efa3fd775a552938d862f75975d34c418ad26d028ba2c952da58682cfe1cb47", + "dockerfile_url": "https://raw.githubusercontent.com/junkerderprovinz/artcraft-apps/32bee0dea9bdaf5310c693210bea0d732a129ae8/Dockerfile", + "dockerfile_sha256": "69ab1a81d1696d1bd143a6fa5a121c034ddfb3e83008969340e8cd2413547fe1", + "reviewed_on": "2026-11-04", + "documentation": "https://docs.linuxserver.io/images/docker-baseimage-selkies/", + "nvidia": "available-in-advanced-mode-with-compatible-host-driver-and-toolkit", + "validation": "Intel/AMD tested on a Radeon 680M: GL compositor and VAAPI encoding on the render node" + }, + "device_requests": [], + "optional_devices": [], + "hardware_acceleration": { + "prompt": "Selkies desktop and streaming acceleration", + "default": "none", + "profiles": [ + { + "id": "none", + "label": "No GPU (CPU)", + "device_requests": [], + "environment": [ + { + "name": "AUTO_GPU", + "value": "false" + } + ] + }, + { + "id": "vaapi", + "label": "Intel/AMD (streaming rendering and encoding)", + "device_requests": [ + { + "id": "selkies-render", + "kind": "character-device", + "path_prompt": "Intel/AMD render node", + "host_path_default": "/dev/dri/renderD128", + "container_path_strategy": "same-as-host", + "mode": "0660", + "deny_write": false, + "gid_strategy": "host-device-gid", + "drm_vendor_ids": [ + "0x8086", + "0x1002" + ] + } + ], + "environment": [ + { + "name": "PIXELFLUX_WAYLAND", + "value": "true" + }, + { + "name": "AUTO_GPU", + "value": "false" + } + ], + "environment_from_devices": { + "DRINODE": [ + "selkies-render" + ], + "DRI_NODE": [ + "selkies-render" + ], + "ATTACHED_DEVICES_PERMS": [ + "selkies-render" + ] + } + }, + { + "id": "nvidia", + "label": "NVIDIA (Selkies rendering and NVENC)", + "device_requests": [ + { + "id": "selkies-nvidia", + "kind": "nvidia-runtime", + "device_selection": "all-requested-by-compose" + } + ], + "environment": [ + { + "name": "AUTO_GPU", + "value": "true" + }, + { + "name": "NVIDIA_VISIBLE_DEVICES", + "value": "all" + }, + { + "name": "NVIDIA_DRIVER_CAPABILITIES", + "value": "compute,video,graphics,utility,display" + } + ] + } + ] + }, + "gpu_validation": { + "device_inventory": "host-sysfs-and-stat", + "application_acceleration": "requires-workload-test", + "tone_mapping": "not-implied-by-device-access" + }, + "device_permissions": { + "strategy": "linuxserver-native-init", + "service_user": "abc", + "environment": "ATTACHED_DEVICES_PERMS", + "paths": "all-resolved-selected-character-devices" } }, "adaptations": [ diff --git a/oci/catalog/apps/wordcraft.json b/oci/catalog/apps/wordcraft.json index 7e0c6602..df437c08 100644 --- a/oci/catalog/apps/wordcraft.json +++ b/oci/catalog/apps/wordcraft.json @@ -41,8 +41,8 @@ "Use a trusted HTTPS reverse proxy for browser access. Port 3001 uses the upstream self-signed certificate; port 3000 is for an HTTP reverse-proxy backend.", "The upstream default has no login. Optional CUSTOM_USER and PASSWORD variables enable HTTP basic authentication; do not expose an unauthenticated desktop to untrusted networks.", "/config holds settings and desktop state and is included in Proxmox backups. /storage holds documents and supports a managed volume or an explicitly selected host directory; host directories require separate backups.", - "The default uses software rendering. GPU acceleration and other CPU architectures are not claimed tested by a CPU-only amd64 installation.", - "Without an assigned GPU, an application may ask to switch to CPU rendering. Choose the CPU option; hardware acceleration is not required for the default configuration." + "The default installation draws on the CPU. The advanced installation can assign an Intel or AMD GPU, which the desktop, the application and the video stream then use; NVIDIA is offered when the host has its driver and the NVIDIA Container Toolkit.", + "Without a GPU, an application may ask to switch to CPU rendering. Choose the CPU option; the application remembers it." ], "mini_changelog": [], "display_version": null, @@ -112,6 +112,14 @@ "required": false, "sensitive": true, "source": "upstream-documentation" + }, + { + "name": "LC_ALL", + "example": "", + "required": false, + "sensitive": false, + "source": "upstream-documentation", + "prompt": "Language/locale (e.g. es_ES.UTF-8; translation of every application is not guaranteed)" } ], "volumes": [ @@ -365,6 +373,111 @@ "stability_seconds": 8, "accept_any_status": true, "verify_tls": true + }, + "selkies": { + "base": "FROM ghcr.io/linuxserver/baseimage-selkies:ubunturesolute@sha256:6efa3fd775a552938d862f75975d34c418ad26d028ba2c952da58682cfe1cb47", + "dockerfile_url": "https://raw.githubusercontent.com/junkerderprovinz/artcraft-apps/32bee0dea9bdaf5310c693210bea0d732a129ae8/Dockerfile", + "dockerfile_sha256": "69ab1a81d1696d1bd143a6fa5a121c034ddfb3e83008969340e8cd2413547fe1", + "reviewed_on": "2026-11-04", + "documentation": "https://docs.linuxserver.io/images/docker-baseimage-selkies/", + "nvidia": "available-in-advanced-mode-with-compatible-host-driver-and-toolkit", + "validation": "Intel/AMD tested on a Radeon 680M: GL compositor and VAAPI encoding on the render node" + }, + "device_requests": [], + "optional_devices": [], + "hardware_acceleration": { + "prompt": "Selkies desktop and streaming acceleration", + "default": "none", + "profiles": [ + { + "id": "none", + "label": "No GPU (CPU)", + "device_requests": [], + "environment": [ + { + "name": "AUTO_GPU", + "value": "false" + } + ] + }, + { + "id": "vaapi", + "label": "Intel/AMD (streaming rendering and encoding)", + "device_requests": [ + { + "id": "selkies-render", + "kind": "character-device", + "path_prompt": "Intel/AMD render node", + "host_path_default": "/dev/dri/renderD128", + "container_path_strategy": "same-as-host", + "mode": "0660", + "deny_write": false, + "gid_strategy": "host-device-gid", + "drm_vendor_ids": [ + "0x8086", + "0x1002" + ] + } + ], + "environment": [ + { + "name": "PIXELFLUX_WAYLAND", + "value": "true" + }, + { + "name": "AUTO_GPU", + "value": "false" + } + ], + "environment_from_devices": { + "DRINODE": [ + "selkies-render" + ], + "DRI_NODE": [ + "selkies-render" + ], + "ATTACHED_DEVICES_PERMS": [ + "selkies-render" + ] + } + }, + { + "id": "nvidia", + "label": "NVIDIA (Selkies rendering and NVENC)", + "device_requests": [ + { + "id": "selkies-nvidia", + "kind": "nvidia-runtime", + "device_selection": "all-requested-by-compose" + } + ], + "environment": [ + { + "name": "AUTO_GPU", + "value": "true" + }, + { + "name": "NVIDIA_VISIBLE_DEVICES", + "value": "all" + }, + { + "name": "NVIDIA_DRIVER_CAPABILITIES", + "value": "compute,video,graphics,utility,display" + } + ] + } + ] + }, + "gpu_validation": { + "device_inventory": "host-sysfs-and-stat", + "application_acceleration": "requires-workload-test", + "tone_mapping": "not-implied-by-device-access" + }, + "device_permissions": { + "strategy": "linuxserver-native-init", + "service_user": "abc", + "environment": "ATTACHED_DEVICES_PERMS", + "paths": "all-resolved-selected-character-devices" } }, "adaptations": [ diff --git a/oci/catalog/curated/cadcraft.json b/oci/catalog/curated/cadcraft.json index f17e3aa0..83751f84 100644 --- a/oci/catalog/curated/cadcraft.json +++ b/oci/catalog/curated/cadcraft.json @@ -41,8 +41,8 @@ "Use a trusted HTTPS reverse proxy for browser access. Port 3001 uses the upstream self-signed certificate; port 3000 is for an HTTP reverse-proxy backend.", "The upstream default has no login. Optional CUSTOM_USER and PASSWORD variables enable HTTP basic authentication; do not expose an unauthenticated desktop to untrusted networks.", "/config holds settings and desktop state and is included in Proxmox backups. /storage holds documents and supports a managed volume or an explicitly selected host directory; host directories require separate backups.", - "The default uses software rendering. GPU acceleration and other CPU architectures are not claimed tested by a CPU-only amd64 installation.", - "Without an assigned GPU, an application may ask to switch to CPU rendering. Choose the CPU option; hardware acceleration is not required for the default configuration." + "The default installation draws on the CPU. The advanced installation can assign an Intel or AMD GPU, which the desktop, the application and the video stream then use; NVIDIA is offered when the host has its driver and the NVIDIA Container Toolkit.", + "Without a GPU, an application may ask to switch to CPU rendering. Choose the CPU option; the application remembers it." ], "mini_changelog": [], "display_version": null, @@ -112,6 +112,14 @@ "required": false, "sensitive": true, "source": "upstream-documentation" + }, + { + "name": "LC_ALL", + "example": "", + "required": false, + "sensitive": false, + "source": "upstream-documentation", + "prompt": "Language/locale (e.g. es_ES.UTF-8; translation of every application is not guaranteed)" } ], "volumes": [ @@ -365,6 +373,111 @@ "stability_seconds": 8, "accept_any_status": true, "verify_tls": true + }, + "selkies": { + "base": "FROM ghcr.io/linuxserver/baseimage-selkies:ubunturesolute@sha256:6efa3fd775a552938d862f75975d34c418ad26d028ba2c952da58682cfe1cb47", + "dockerfile_url": "https://raw.githubusercontent.com/junkerderprovinz/artcraft-apps/32bee0dea9bdaf5310c693210bea0d732a129ae8/Dockerfile", + "dockerfile_sha256": "69ab1a81d1696d1bd143a6fa5a121c034ddfb3e83008969340e8cd2413547fe1", + "reviewed_on": "2026-11-04", + "documentation": "https://docs.linuxserver.io/images/docker-baseimage-selkies/", + "nvidia": "available-in-advanced-mode-with-compatible-host-driver-and-toolkit", + "validation": "Intel/AMD tested on a Radeon 680M: GL compositor and VAAPI encoding on the render node" + }, + "device_requests": [], + "optional_devices": [], + "hardware_acceleration": { + "prompt": "Selkies desktop and streaming acceleration", + "default": "none", + "profiles": [ + { + "id": "none", + "label": "No GPU (CPU)", + "device_requests": [], + "environment": [ + { + "name": "AUTO_GPU", + "value": "false" + } + ] + }, + { + "id": "vaapi", + "label": "Intel/AMD (streaming rendering and encoding)", + "device_requests": [ + { + "id": "selkies-render", + "kind": "character-device", + "path_prompt": "Intel/AMD render node", + "host_path_default": "/dev/dri/renderD128", + "container_path_strategy": "same-as-host", + "mode": "0660", + "deny_write": false, + "gid_strategy": "host-device-gid", + "drm_vendor_ids": [ + "0x8086", + "0x1002" + ] + } + ], + "environment": [ + { + "name": "PIXELFLUX_WAYLAND", + "value": "true" + }, + { + "name": "AUTO_GPU", + "value": "false" + } + ], + "environment_from_devices": { + "DRINODE": [ + "selkies-render" + ], + "DRI_NODE": [ + "selkies-render" + ], + "ATTACHED_DEVICES_PERMS": [ + "selkies-render" + ] + } + }, + { + "id": "nvidia", + "label": "NVIDIA (Selkies rendering and NVENC)", + "device_requests": [ + { + "id": "selkies-nvidia", + "kind": "nvidia-runtime", + "device_selection": "all-requested-by-compose" + } + ], + "environment": [ + { + "name": "AUTO_GPU", + "value": "true" + }, + { + "name": "NVIDIA_VISIBLE_DEVICES", + "value": "all" + }, + { + "name": "NVIDIA_DRIVER_CAPABILITIES", + "value": "compute,video,graphics,utility,display" + } + ] + } + ] + }, + "gpu_validation": { + "device_inventory": "host-sysfs-and-stat", + "application_acceleration": "requires-workload-test", + "tone_mapping": "not-implied-by-device-access" + }, + "device_permissions": { + "strategy": "linuxserver-native-init", + "service_user": "abc", + "environment": "ATTACHED_DEVICES_PERMS", + "paths": "all-resolved-selected-character-devices" } }, "adaptations": [ diff --git a/oci/catalog/curated/deckcraft.json b/oci/catalog/curated/deckcraft.json index 9e49abf6..ec0f479f 100644 --- a/oci/catalog/curated/deckcraft.json +++ b/oci/catalog/curated/deckcraft.json @@ -41,8 +41,8 @@ "Use a trusted HTTPS reverse proxy for browser access. Port 3001 uses the upstream self-signed certificate; port 3000 is for an HTTP reverse-proxy backend.", "The upstream default has no login. Optional CUSTOM_USER and PASSWORD variables enable HTTP basic authentication; do not expose an unauthenticated desktop to untrusted networks.", "/config holds settings and desktop state and is included in Proxmox backups. /storage holds documents and supports a managed volume or an explicitly selected host directory; host directories require separate backups.", - "The default uses software rendering. GPU acceleration and other CPU architectures are not claimed tested by a CPU-only amd64 installation.", - "Without an assigned GPU, an application may ask to switch to CPU rendering. Choose the CPU option; hardware acceleration is not required for the default configuration." + "The default installation draws on the CPU. The advanced installation can assign an Intel or AMD GPU, which the desktop, the application and the video stream then use; NVIDIA is offered when the host has its driver and the NVIDIA Container Toolkit.", + "Without a GPU, an application may ask to switch to CPU rendering. Choose the CPU option; the application remembers it." ], "mini_changelog": [], "display_version": null, @@ -112,6 +112,14 @@ "required": false, "sensitive": true, "source": "upstream-documentation" + }, + { + "name": "LC_ALL", + "example": "", + "required": false, + "sensitive": false, + "source": "upstream-documentation", + "prompt": "Language/locale (e.g. es_ES.UTF-8; translation of every application is not guaranteed)" } ], "volumes": [ @@ -365,6 +373,111 @@ "stability_seconds": 8, "accept_any_status": true, "verify_tls": true + }, + "selkies": { + "base": "FROM ghcr.io/linuxserver/baseimage-selkies:ubunturesolute@sha256:6efa3fd775a552938d862f75975d34c418ad26d028ba2c952da58682cfe1cb47", + "dockerfile_url": "https://raw.githubusercontent.com/junkerderprovinz/artcraft-apps/32bee0dea9bdaf5310c693210bea0d732a129ae8/Dockerfile", + "dockerfile_sha256": "69ab1a81d1696d1bd143a6fa5a121c034ddfb3e83008969340e8cd2413547fe1", + "reviewed_on": "2026-11-04", + "documentation": "https://docs.linuxserver.io/images/docker-baseimage-selkies/", + "nvidia": "available-in-advanced-mode-with-compatible-host-driver-and-toolkit", + "validation": "Intel/AMD tested on a Radeon 680M: GL compositor and VAAPI encoding on the render node" + }, + "device_requests": [], + "optional_devices": [], + "hardware_acceleration": { + "prompt": "Selkies desktop and streaming acceleration", + "default": "none", + "profiles": [ + { + "id": "none", + "label": "No GPU (CPU)", + "device_requests": [], + "environment": [ + { + "name": "AUTO_GPU", + "value": "false" + } + ] + }, + { + "id": "vaapi", + "label": "Intel/AMD (streaming rendering and encoding)", + "device_requests": [ + { + "id": "selkies-render", + "kind": "character-device", + "path_prompt": "Intel/AMD render node", + "host_path_default": "/dev/dri/renderD128", + "container_path_strategy": "same-as-host", + "mode": "0660", + "deny_write": false, + "gid_strategy": "host-device-gid", + "drm_vendor_ids": [ + "0x8086", + "0x1002" + ] + } + ], + "environment": [ + { + "name": "PIXELFLUX_WAYLAND", + "value": "true" + }, + { + "name": "AUTO_GPU", + "value": "false" + } + ], + "environment_from_devices": { + "DRINODE": [ + "selkies-render" + ], + "DRI_NODE": [ + "selkies-render" + ], + "ATTACHED_DEVICES_PERMS": [ + "selkies-render" + ] + } + }, + { + "id": "nvidia", + "label": "NVIDIA (Selkies rendering and NVENC)", + "device_requests": [ + { + "id": "selkies-nvidia", + "kind": "nvidia-runtime", + "device_selection": "all-requested-by-compose" + } + ], + "environment": [ + { + "name": "AUTO_GPU", + "value": "true" + }, + { + "name": "NVIDIA_VISIBLE_DEVICES", + "value": "all" + }, + { + "name": "NVIDIA_DRIVER_CAPABILITIES", + "value": "compute,video,graphics,utility,display" + } + ] + } + ] + }, + "gpu_validation": { + "device_inventory": "host-sysfs-and-stat", + "application_acceleration": "requires-workload-test", + "tone_mapping": "not-implied-by-device-access" + }, + "device_permissions": { + "strategy": "linuxserver-native-init", + "service_user": "abc", + "environment": "ATTACHED_DEVICES_PERMS", + "paths": "all-resolved-selected-character-devices" } }, "adaptations": [ diff --git a/oci/catalog/curated/designcraft.json b/oci/catalog/curated/designcraft.json index 1b29acab..816524c8 100644 --- a/oci/catalog/curated/designcraft.json +++ b/oci/catalog/curated/designcraft.json @@ -41,8 +41,8 @@ "Use a trusted HTTPS reverse proxy for browser access. Port 3001 uses the upstream self-signed certificate; port 3000 is for an HTTP reverse-proxy backend.", "The upstream default has no login. Optional CUSTOM_USER and PASSWORD variables enable HTTP basic authentication; do not expose an unauthenticated desktop to untrusted networks.", "/config holds settings and desktop state and is included in Proxmox backups. /storage holds documents and supports a managed volume or an explicitly selected host directory; host directories require separate backups.", - "The default uses software rendering. GPU acceleration and other CPU architectures are not claimed tested by a CPU-only amd64 installation.", - "Without an assigned GPU, an application may ask to switch to CPU rendering. Choose the CPU option; hardware acceleration is not required for the default configuration." + "The default installation draws on the CPU. The advanced installation can assign an Intel or AMD GPU, which the desktop, the application and the video stream then use; NVIDIA is offered when the host has its driver and the NVIDIA Container Toolkit.", + "Without a GPU, an application may ask to switch to CPU rendering. Choose the CPU option; the application remembers it." ], "mini_changelog": [], "display_version": null, @@ -112,6 +112,14 @@ "required": false, "sensitive": true, "source": "upstream-documentation" + }, + { + "name": "LC_ALL", + "example": "", + "required": false, + "sensitive": false, + "source": "upstream-documentation", + "prompt": "Language/locale (e.g. es_ES.UTF-8; translation of every application is not guaranteed)" } ], "volumes": [ @@ -365,6 +373,111 @@ "stability_seconds": 8, "accept_any_status": true, "verify_tls": true + }, + "selkies": { + "base": "FROM ghcr.io/linuxserver/baseimage-selkies:ubunturesolute@sha256:6efa3fd775a552938d862f75975d34c418ad26d028ba2c952da58682cfe1cb47", + "dockerfile_url": "https://raw.githubusercontent.com/junkerderprovinz/artcraft-apps/32bee0dea9bdaf5310c693210bea0d732a129ae8/Dockerfile", + "dockerfile_sha256": "69ab1a81d1696d1bd143a6fa5a121c034ddfb3e83008969340e8cd2413547fe1", + "reviewed_on": "2026-11-04", + "documentation": "https://docs.linuxserver.io/images/docker-baseimage-selkies/", + "nvidia": "available-in-advanced-mode-with-compatible-host-driver-and-toolkit", + "validation": "Intel/AMD tested on a Radeon 680M: GL compositor and VAAPI encoding on the render node" + }, + "device_requests": [], + "optional_devices": [], + "hardware_acceleration": { + "prompt": "Selkies desktop and streaming acceleration", + "default": "none", + "profiles": [ + { + "id": "none", + "label": "No GPU (CPU)", + "device_requests": [], + "environment": [ + { + "name": "AUTO_GPU", + "value": "false" + } + ] + }, + { + "id": "vaapi", + "label": "Intel/AMD (streaming rendering and encoding)", + "device_requests": [ + { + "id": "selkies-render", + "kind": "character-device", + "path_prompt": "Intel/AMD render node", + "host_path_default": "/dev/dri/renderD128", + "container_path_strategy": "same-as-host", + "mode": "0660", + "deny_write": false, + "gid_strategy": "host-device-gid", + "drm_vendor_ids": [ + "0x8086", + "0x1002" + ] + } + ], + "environment": [ + { + "name": "PIXELFLUX_WAYLAND", + "value": "true" + }, + { + "name": "AUTO_GPU", + "value": "false" + } + ], + "environment_from_devices": { + "DRINODE": [ + "selkies-render" + ], + "DRI_NODE": [ + "selkies-render" + ], + "ATTACHED_DEVICES_PERMS": [ + "selkies-render" + ] + } + }, + { + "id": "nvidia", + "label": "NVIDIA (Selkies rendering and NVENC)", + "device_requests": [ + { + "id": "selkies-nvidia", + "kind": "nvidia-runtime", + "device_selection": "all-requested-by-compose" + } + ], + "environment": [ + { + "name": "AUTO_GPU", + "value": "true" + }, + { + "name": "NVIDIA_VISIBLE_DEVICES", + "value": "all" + }, + { + "name": "NVIDIA_DRIVER_CAPABILITIES", + "value": "compute,video,graphics,utility,display" + } + ] + } + ] + }, + "gpu_validation": { + "device_inventory": "host-sysfs-and-stat", + "application_acceleration": "requires-workload-test", + "tone_mapping": "not-implied-by-device-access" + }, + "device_permissions": { + "strategy": "linuxserver-native-init", + "service_user": "abc", + "environment": "ATTACHED_DEVICES_PERMS", + "paths": "all-resolved-selected-character-devices" } }, "adaptations": [ diff --git a/oci/catalog/curated/effectcraft.json b/oci/catalog/curated/effectcraft.json index 83fc3e8d..f2b6ed37 100644 --- a/oci/catalog/curated/effectcraft.json +++ b/oci/catalog/curated/effectcraft.json @@ -41,8 +41,8 @@ "Use a trusted HTTPS reverse proxy for browser access. Port 3001 uses the upstream self-signed certificate; port 3000 is for an HTTP reverse-proxy backend.", "The upstream default has no login. Optional CUSTOM_USER and PASSWORD variables enable HTTP basic authentication; do not expose an unauthenticated desktop to untrusted networks.", "/config holds settings and desktop state and is included in Proxmox backups. /storage holds documents and supports a managed volume or an explicitly selected host directory; host directories require separate backups.", - "The default uses software rendering. GPU acceleration and other CPU architectures are not claimed tested by a CPU-only amd64 installation.", - "Without an assigned GPU, an application may ask to switch to CPU rendering. Choose the CPU option; hardware acceleration is not required for the default configuration." + "The default installation draws on the CPU. The advanced installation can assign an Intel or AMD GPU, which the desktop, the application and the video stream then use; NVIDIA is offered when the host has its driver and the NVIDIA Container Toolkit.", + "Without a GPU, an application may ask to switch to CPU rendering. Choose the CPU option; the application remembers it." ], "mini_changelog": [], "display_version": null, @@ -112,6 +112,14 @@ "required": false, "sensitive": true, "source": "upstream-documentation" + }, + { + "name": "LC_ALL", + "example": "", + "required": false, + "sensitive": false, + "source": "upstream-documentation", + "prompt": "Language/locale (e.g. es_ES.UTF-8; translation of every application is not guaranteed)" } ], "volumes": [ @@ -365,6 +373,111 @@ "stability_seconds": 8, "accept_any_status": true, "verify_tls": true + }, + "selkies": { + "base": "FROM ghcr.io/linuxserver/baseimage-selkies:ubunturesolute@sha256:6efa3fd775a552938d862f75975d34c418ad26d028ba2c952da58682cfe1cb47", + "dockerfile_url": "https://raw.githubusercontent.com/junkerderprovinz/artcraft-apps/32bee0dea9bdaf5310c693210bea0d732a129ae8/Dockerfile", + "dockerfile_sha256": "69ab1a81d1696d1bd143a6fa5a121c034ddfb3e83008969340e8cd2413547fe1", + "reviewed_on": "2026-11-04", + "documentation": "https://docs.linuxserver.io/images/docker-baseimage-selkies/", + "nvidia": "available-in-advanced-mode-with-compatible-host-driver-and-toolkit", + "validation": "Intel/AMD tested on a Radeon 680M: GL compositor and VAAPI encoding on the render node" + }, + "device_requests": [], + "optional_devices": [], + "hardware_acceleration": { + "prompt": "Selkies desktop and streaming acceleration", + "default": "none", + "profiles": [ + { + "id": "none", + "label": "No GPU (CPU)", + "device_requests": [], + "environment": [ + { + "name": "AUTO_GPU", + "value": "false" + } + ] + }, + { + "id": "vaapi", + "label": "Intel/AMD (streaming rendering and encoding)", + "device_requests": [ + { + "id": "selkies-render", + "kind": "character-device", + "path_prompt": "Intel/AMD render node", + "host_path_default": "/dev/dri/renderD128", + "container_path_strategy": "same-as-host", + "mode": "0660", + "deny_write": false, + "gid_strategy": "host-device-gid", + "drm_vendor_ids": [ + "0x8086", + "0x1002" + ] + } + ], + "environment": [ + { + "name": "PIXELFLUX_WAYLAND", + "value": "true" + }, + { + "name": "AUTO_GPU", + "value": "false" + } + ], + "environment_from_devices": { + "DRINODE": [ + "selkies-render" + ], + "DRI_NODE": [ + "selkies-render" + ], + "ATTACHED_DEVICES_PERMS": [ + "selkies-render" + ] + } + }, + { + "id": "nvidia", + "label": "NVIDIA (Selkies rendering and NVENC)", + "device_requests": [ + { + "id": "selkies-nvidia", + "kind": "nvidia-runtime", + "device_selection": "all-requested-by-compose" + } + ], + "environment": [ + { + "name": "AUTO_GPU", + "value": "true" + }, + { + "name": "NVIDIA_VISIBLE_DEVICES", + "value": "all" + }, + { + "name": "NVIDIA_DRIVER_CAPABILITIES", + "value": "compute,video,graphics,utility,display" + } + ] + } + ] + }, + "gpu_validation": { + "device_inventory": "host-sysfs-and-stat", + "application_acceleration": "requires-workload-test", + "tone_mapping": "not-implied-by-device-access" + }, + "device_permissions": { + "strategy": "linuxserver-native-init", + "service_user": "abc", + "environment": "ATTACHED_DEVICES_PERMS", + "paths": "all-resolved-selected-character-devices" } }, "adaptations": [ diff --git a/oci/catalog/curated/figcraft.json b/oci/catalog/curated/figcraft.json index 8ec545a0..80644eb3 100644 --- a/oci/catalog/curated/figcraft.json +++ b/oci/catalog/curated/figcraft.json @@ -41,8 +41,8 @@ "Use a trusted HTTPS reverse proxy for browser access. Port 3001 uses the upstream self-signed certificate; port 3000 is for an HTTP reverse-proxy backend.", "The upstream default has no login. Optional CUSTOM_USER and PASSWORD variables enable HTTP basic authentication; do not expose an unauthenticated desktop to untrusted networks.", "/config holds settings and desktop state and is included in Proxmox backups. /storage holds documents and supports a managed volume or an explicitly selected host directory; host directories require separate backups.", - "The default uses software rendering. GPU acceleration and other CPU architectures are not claimed tested by a CPU-only amd64 installation.", - "Without an assigned GPU, an application may ask to switch to CPU rendering. Choose the CPU option; hardware acceleration is not required for the default configuration." + "The default installation draws on the CPU. The advanced installation can assign an Intel or AMD GPU, which the desktop, the application and the video stream then use; NVIDIA is offered when the host has its driver and the NVIDIA Container Toolkit.", + "Without a GPU, an application may ask to switch to CPU rendering. Choose the CPU option; the application remembers it." ], "mini_changelog": [], "display_version": null, @@ -112,6 +112,14 @@ "required": false, "sensitive": true, "source": "upstream-documentation" + }, + { + "name": "LC_ALL", + "example": "", + "required": false, + "sensitive": false, + "source": "upstream-documentation", + "prompt": "Language/locale (e.g. es_ES.UTF-8; translation of every application is not guaranteed)" } ], "volumes": [ @@ -365,6 +373,111 @@ "stability_seconds": 8, "accept_any_status": true, "verify_tls": true + }, + "selkies": { + "base": "FROM ghcr.io/linuxserver/baseimage-selkies:ubunturesolute@sha256:6efa3fd775a552938d862f75975d34c418ad26d028ba2c952da58682cfe1cb47", + "dockerfile_url": "https://raw.githubusercontent.com/junkerderprovinz/artcraft-apps/32bee0dea9bdaf5310c693210bea0d732a129ae8/Dockerfile", + "dockerfile_sha256": "69ab1a81d1696d1bd143a6fa5a121c034ddfb3e83008969340e8cd2413547fe1", + "reviewed_on": "2026-11-04", + "documentation": "https://docs.linuxserver.io/images/docker-baseimage-selkies/", + "nvidia": "available-in-advanced-mode-with-compatible-host-driver-and-toolkit", + "validation": "Intel/AMD tested on a Radeon 680M: GL compositor and VAAPI encoding on the render node" + }, + "device_requests": [], + "optional_devices": [], + "hardware_acceleration": { + "prompt": "Selkies desktop and streaming acceleration", + "default": "none", + "profiles": [ + { + "id": "none", + "label": "No GPU (CPU)", + "device_requests": [], + "environment": [ + { + "name": "AUTO_GPU", + "value": "false" + } + ] + }, + { + "id": "vaapi", + "label": "Intel/AMD (streaming rendering and encoding)", + "device_requests": [ + { + "id": "selkies-render", + "kind": "character-device", + "path_prompt": "Intel/AMD render node", + "host_path_default": "/dev/dri/renderD128", + "container_path_strategy": "same-as-host", + "mode": "0660", + "deny_write": false, + "gid_strategy": "host-device-gid", + "drm_vendor_ids": [ + "0x8086", + "0x1002" + ] + } + ], + "environment": [ + { + "name": "PIXELFLUX_WAYLAND", + "value": "true" + }, + { + "name": "AUTO_GPU", + "value": "false" + } + ], + "environment_from_devices": { + "DRINODE": [ + "selkies-render" + ], + "DRI_NODE": [ + "selkies-render" + ], + "ATTACHED_DEVICES_PERMS": [ + "selkies-render" + ] + } + }, + { + "id": "nvidia", + "label": "NVIDIA (Selkies rendering and NVENC)", + "device_requests": [ + { + "id": "selkies-nvidia", + "kind": "nvidia-runtime", + "device_selection": "all-requested-by-compose" + } + ], + "environment": [ + { + "name": "AUTO_GPU", + "value": "true" + }, + { + "name": "NVIDIA_VISIBLE_DEVICES", + "value": "all" + }, + { + "name": "NVIDIA_DRIVER_CAPABILITIES", + "value": "compute,video,graphics,utility,display" + } + ] + } + ] + }, + "gpu_validation": { + "device_inventory": "host-sysfs-and-stat", + "application_acceleration": "requires-workload-test", + "tone_mapping": "not-implied-by-device-access" + }, + "device_permissions": { + "strategy": "linuxserver-native-init", + "service_user": "abc", + "environment": "ATTACHED_DEVICES_PERMS", + "paths": "all-resolved-selected-character-devices" } }, "adaptations": [ diff --git a/oci/catalog/curated/filmcraft.json b/oci/catalog/curated/filmcraft.json index 184c4169..8289da25 100644 --- a/oci/catalog/curated/filmcraft.json +++ b/oci/catalog/curated/filmcraft.json @@ -41,8 +41,8 @@ "Use a trusted HTTPS reverse proxy for browser access. Port 3001 uses the upstream self-signed certificate; port 3000 is for an HTTP reverse-proxy backend.", "The upstream default has no login. Optional CUSTOM_USER and PASSWORD variables enable HTTP basic authentication; do not expose an unauthenticated desktop to untrusted networks.", "/config holds settings and desktop state and is included in Proxmox backups. /storage holds documents and supports a managed volume or an explicitly selected host directory; host directories require separate backups.", - "The default uses software rendering. GPU acceleration and other CPU architectures are not claimed tested by a CPU-only amd64 installation.", - "Without an assigned GPU, an application may ask to switch to CPU rendering. Choose the CPU option; hardware acceleration is not required for the default configuration." + "The default installation draws on the CPU. The advanced installation can assign an Intel or AMD GPU, which the desktop, the application and the video stream then use; NVIDIA is offered when the host has its driver and the NVIDIA Container Toolkit.", + "Without a GPU, an application may ask to switch to CPU rendering. Choose the CPU option; the application remembers it." ], "mini_changelog": [], "display_version": null, @@ -112,6 +112,14 @@ "required": false, "sensitive": true, "source": "upstream-documentation" + }, + { + "name": "LC_ALL", + "example": "", + "required": false, + "sensitive": false, + "source": "upstream-documentation", + "prompt": "Language/locale (e.g. es_ES.UTF-8; translation of every application is not guaranteed)" } ], "volumes": [ @@ -365,6 +373,111 @@ "stability_seconds": 8, "accept_any_status": true, "verify_tls": true + }, + "selkies": { + "base": "FROM ghcr.io/linuxserver/baseimage-selkies:ubunturesolute@sha256:6efa3fd775a552938d862f75975d34c418ad26d028ba2c952da58682cfe1cb47", + "dockerfile_url": "https://raw.githubusercontent.com/junkerderprovinz/artcraft-apps/32bee0dea9bdaf5310c693210bea0d732a129ae8/Dockerfile", + "dockerfile_sha256": "69ab1a81d1696d1bd143a6fa5a121c034ddfb3e83008969340e8cd2413547fe1", + "reviewed_on": "2026-11-04", + "documentation": "https://docs.linuxserver.io/images/docker-baseimage-selkies/", + "nvidia": "available-in-advanced-mode-with-compatible-host-driver-and-toolkit", + "validation": "Intel/AMD tested on a Radeon 680M: GL compositor and VAAPI encoding on the render node" + }, + "device_requests": [], + "optional_devices": [], + "hardware_acceleration": { + "prompt": "Selkies desktop and streaming acceleration", + "default": "none", + "profiles": [ + { + "id": "none", + "label": "No GPU (CPU)", + "device_requests": [], + "environment": [ + { + "name": "AUTO_GPU", + "value": "false" + } + ] + }, + { + "id": "vaapi", + "label": "Intel/AMD (streaming rendering and encoding)", + "device_requests": [ + { + "id": "selkies-render", + "kind": "character-device", + "path_prompt": "Intel/AMD render node", + "host_path_default": "/dev/dri/renderD128", + "container_path_strategy": "same-as-host", + "mode": "0660", + "deny_write": false, + "gid_strategy": "host-device-gid", + "drm_vendor_ids": [ + "0x8086", + "0x1002" + ] + } + ], + "environment": [ + { + "name": "PIXELFLUX_WAYLAND", + "value": "true" + }, + { + "name": "AUTO_GPU", + "value": "false" + } + ], + "environment_from_devices": { + "DRINODE": [ + "selkies-render" + ], + "DRI_NODE": [ + "selkies-render" + ], + "ATTACHED_DEVICES_PERMS": [ + "selkies-render" + ] + } + }, + { + "id": "nvidia", + "label": "NVIDIA (Selkies rendering and NVENC)", + "device_requests": [ + { + "id": "selkies-nvidia", + "kind": "nvidia-runtime", + "device_selection": "all-requested-by-compose" + } + ], + "environment": [ + { + "name": "AUTO_GPU", + "value": "true" + }, + { + "name": "NVIDIA_VISIBLE_DEVICES", + "value": "all" + }, + { + "name": "NVIDIA_DRIVER_CAPABILITIES", + "value": "compute,video,graphics,utility,display" + } + ] + } + ] + }, + "gpu_validation": { + "device_inventory": "host-sysfs-and-stat", + "application_acceleration": "requires-workload-test", + "tone_mapping": "not-implied-by-device-access" + }, + "device_permissions": { + "strategy": "linuxserver-native-init", + "service_user": "abc", + "environment": "ATTACHED_DEVICES_PERMS", + "paths": "all-resolved-selected-character-devices" } }, "adaptations": [ diff --git a/oci/catalog/curated/gridcraft.json b/oci/catalog/curated/gridcraft.json index 6d7c9a0a..6920328e 100644 --- a/oci/catalog/curated/gridcraft.json +++ b/oci/catalog/curated/gridcraft.json @@ -41,8 +41,8 @@ "Use a trusted HTTPS reverse proxy for browser access. Port 3001 uses the upstream self-signed certificate; port 3000 is for an HTTP reverse-proxy backend.", "The upstream default has no login. Optional CUSTOM_USER and PASSWORD variables enable HTTP basic authentication; do not expose an unauthenticated desktop to untrusted networks.", "/config holds settings and desktop state and is included in Proxmox backups. /storage holds documents and supports a managed volume or an explicitly selected host directory; host directories require separate backups.", - "The default uses software rendering. GPU acceleration and other CPU architectures are not claimed tested by a CPU-only amd64 installation.", - "Without an assigned GPU, an application may ask to switch to CPU rendering. Choose the CPU option; hardware acceleration is not required for the default configuration." + "The default installation draws on the CPU. The advanced installation can assign an Intel or AMD GPU, which the desktop, the application and the video stream then use; NVIDIA is offered when the host has its driver and the NVIDIA Container Toolkit.", + "Without a GPU, an application may ask to switch to CPU rendering. Choose the CPU option; the application remembers it." ], "mini_changelog": [], "display_version": null, @@ -112,6 +112,14 @@ "required": false, "sensitive": true, "source": "upstream-documentation" + }, + { + "name": "LC_ALL", + "example": "", + "required": false, + "sensitive": false, + "source": "upstream-documentation", + "prompt": "Language/locale (e.g. es_ES.UTF-8; translation of every application is not guaranteed)" } ], "volumes": [ @@ -365,6 +373,111 @@ "stability_seconds": 8, "accept_any_status": true, "verify_tls": true + }, + "selkies": { + "base": "FROM ghcr.io/linuxserver/baseimage-selkies:ubunturesolute@sha256:6efa3fd775a552938d862f75975d34c418ad26d028ba2c952da58682cfe1cb47", + "dockerfile_url": "https://raw.githubusercontent.com/junkerderprovinz/artcraft-apps/32bee0dea9bdaf5310c693210bea0d732a129ae8/Dockerfile", + "dockerfile_sha256": "69ab1a81d1696d1bd143a6fa5a121c034ddfb3e83008969340e8cd2413547fe1", + "reviewed_on": "2026-11-04", + "documentation": "https://docs.linuxserver.io/images/docker-baseimage-selkies/", + "nvidia": "available-in-advanced-mode-with-compatible-host-driver-and-toolkit", + "validation": "Intel/AMD tested on a Radeon 680M: GL compositor and VAAPI encoding on the render node" + }, + "device_requests": [], + "optional_devices": [], + "hardware_acceleration": { + "prompt": "Selkies desktop and streaming acceleration", + "default": "none", + "profiles": [ + { + "id": "none", + "label": "No GPU (CPU)", + "device_requests": [], + "environment": [ + { + "name": "AUTO_GPU", + "value": "false" + } + ] + }, + { + "id": "vaapi", + "label": "Intel/AMD (streaming rendering and encoding)", + "device_requests": [ + { + "id": "selkies-render", + "kind": "character-device", + "path_prompt": "Intel/AMD render node", + "host_path_default": "/dev/dri/renderD128", + "container_path_strategy": "same-as-host", + "mode": "0660", + "deny_write": false, + "gid_strategy": "host-device-gid", + "drm_vendor_ids": [ + "0x8086", + "0x1002" + ] + } + ], + "environment": [ + { + "name": "PIXELFLUX_WAYLAND", + "value": "true" + }, + { + "name": "AUTO_GPU", + "value": "false" + } + ], + "environment_from_devices": { + "DRINODE": [ + "selkies-render" + ], + "DRI_NODE": [ + "selkies-render" + ], + "ATTACHED_DEVICES_PERMS": [ + "selkies-render" + ] + } + }, + { + "id": "nvidia", + "label": "NVIDIA (Selkies rendering and NVENC)", + "device_requests": [ + { + "id": "selkies-nvidia", + "kind": "nvidia-runtime", + "device_selection": "all-requested-by-compose" + } + ], + "environment": [ + { + "name": "AUTO_GPU", + "value": "true" + }, + { + "name": "NVIDIA_VISIBLE_DEVICES", + "value": "all" + }, + { + "name": "NVIDIA_DRIVER_CAPABILITIES", + "value": "compute,video,graphics,utility,display" + } + ] + } + ] + }, + "gpu_validation": { + "device_inventory": "host-sysfs-and-stat", + "application_acceleration": "requires-workload-test", + "tone_mapping": "not-implied-by-device-access" + }, + "device_permissions": { + "strategy": "linuxserver-native-init", + "service_user": "abc", + "environment": "ATTACHED_DEVICES_PERMS", + "paths": "all-resolved-selected-character-devices" } }, "adaptations": [ diff --git a/oci/catalog/curated/lightcraft.json b/oci/catalog/curated/lightcraft.json index 3a9e20ab..afc0582e 100644 --- a/oci/catalog/curated/lightcraft.json +++ b/oci/catalog/curated/lightcraft.json @@ -41,8 +41,8 @@ "Use a trusted HTTPS reverse proxy for browser access. Port 3001 uses the upstream self-signed certificate; port 3000 is for an HTTP reverse-proxy backend.", "The upstream default has no login. Optional CUSTOM_USER and PASSWORD variables enable HTTP basic authentication; do not expose an unauthenticated desktop to untrusted networks.", "/config holds settings and desktop state and is included in Proxmox backups. /storage holds documents and supports a managed volume or an explicitly selected host directory; host directories require separate backups.", - "The default uses software rendering. GPU acceleration and other CPU architectures are not claimed tested by a CPU-only amd64 installation.", - "Without an assigned GPU, an application may ask to switch to CPU rendering. Choose the CPU option; hardware acceleration is not required for the default configuration." + "The default installation draws on the CPU. The advanced installation can assign an Intel or AMD GPU, which the desktop, the application and the video stream then use; NVIDIA is offered when the host has its driver and the NVIDIA Container Toolkit.", + "Without a GPU, an application may ask to switch to CPU rendering. Choose the CPU option; the application remembers it." ], "mini_changelog": [], "display_version": null, @@ -112,6 +112,14 @@ "required": false, "sensitive": true, "source": "upstream-documentation" + }, + { + "name": "LC_ALL", + "example": "", + "required": false, + "sensitive": false, + "source": "upstream-documentation", + "prompt": "Language/locale (e.g. es_ES.UTF-8; translation of every application is not guaranteed)" } ], "volumes": [ @@ -365,6 +373,111 @@ "stability_seconds": 8, "accept_any_status": true, "verify_tls": true + }, + "selkies": { + "base": "FROM ghcr.io/linuxserver/baseimage-selkies:ubunturesolute@sha256:6efa3fd775a552938d862f75975d34c418ad26d028ba2c952da58682cfe1cb47", + "dockerfile_url": "https://raw.githubusercontent.com/junkerderprovinz/artcraft-apps/32bee0dea9bdaf5310c693210bea0d732a129ae8/Dockerfile", + "dockerfile_sha256": "69ab1a81d1696d1bd143a6fa5a121c034ddfb3e83008969340e8cd2413547fe1", + "reviewed_on": "2026-11-04", + "documentation": "https://docs.linuxserver.io/images/docker-baseimage-selkies/", + "nvidia": "available-in-advanced-mode-with-compatible-host-driver-and-toolkit", + "validation": "Intel/AMD tested on a Radeon 680M: GL compositor and VAAPI encoding on the render node" + }, + "device_requests": [], + "optional_devices": [], + "hardware_acceleration": { + "prompt": "Selkies desktop and streaming acceleration", + "default": "none", + "profiles": [ + { + "id": "none", + "label": "No GPU (CPU)", + "device_requests": [], + "environment": [ + { + "name": "AUTO_GPU", + "value": "false" + } + ] + }, + { + "id": "vaapi", + "label": "Intel/AMD (streaming rendering and encoding)", + "device_requests": [ + { + "id": "selkies-render", + "kind": "character-device", + "path_prompt": "Intel/AMD render node", + "host_path_default": "/dev/dri/renderD128", + "container_path_strategy": "same-as-host", + "mode": "0660", + "deny_write": false, + "gid_strategy": "host-device-gid", + "drm_vendor_ids": [ + "0x8086", + "0x1002" + ] + } + ], + "environment": [ + { + "name": "PIXELFLUX_WAYLAND", + "value": "true" + }, + { + "name": "AUTO_GPU", + "value": "false" + } + ], + "environment_from_devices": { + "DRINODE": [ + "selkies-render" + ], + "DRI_NODE": [ + "selkies-render" + ], + "ATTACHED_DEVICES_PERMS": [ + "selkies-render" + ] + } + }, + { + "id": "nvidia", + "label": "NVIDIA (Selkies rendering and NVENC)", + "device_requests": [ + { + "id": "selkies-nvidia", + "kind": "nvidia-runtime", + "device_selection": "all-requested-by-compose" + } + ], + "environment": [ + { + "name": "AUTO_GPU", + "value": "true" + }, + { + "name": "NVIDIA_VISIBLE_DEVICES", + "value": "all" + }, + { + "name": "NVIDIA_DRIVER_CAPABILITIES", + "value": "compute,video,graphics,utility,display" + } + ] + } + ] + }, + "gpu_validation": { + "device_inventory": "host-sysfs-and-stat", + "application_acceleration": "requires-workload-test", + "tone_mapping": "not-implied-by-device-access" + }, + "device_permissions": { + "strategy": "linuxserver-native-init", + "service_user": "abc", + "environment": "ATTACHED_DEVICES_PERMS", + "paths": "all-resolved-selected-character-devices" } }, "adaptations": [ diff --git a/oci/catalog/curated/pdfcraft.json b/oci/catalog/curated/pdfcraft.json index 9d512156..57d452a1 100644 --- a/oci/catalog/curated/pdfcraft.json +++ b/oci/catalog/curated/pdfcraft.json @@ -41,8 +41,8 @@ "Use a trusted HTTPS reverse proxy for browser access. Port 3001 uses the upstream self-signed certificate; port 3000 is for an HTTP reverse-proxy backend.", "The upstream default has no login. Optional CUSTOM_USER and PASSWORD variables enable HTTP basic authentication; do not expose an unauthenticated desktop to untrusted networks.", "/config holds settings and desktop state and is included in Proxmox backups. /storage holds documents and supports a managed volume or an explicitly selected host directory; host directories require separate backups.", - "The default uses software rendering. GPU acceleration and other CPU architectures are not claimed tested by a CPU-only amd64 installation.", - "Without an assigned GPU, an application may ask to switch to CPU rendering. Choose the CPU option; hardware acceleration is not required for the default configuration." + "The default installation draws on the CPU. The advanced installation can assign an Intel or AMD GPU, which the desktop, the application and the video stream then use; NVIDIA is offered when the host has its driver and the NVIDIA Container Toolkit.", + "Without a GPU, an application may ask to switch to CPU rendering. Choose the CPU option; the application remembers it." ], "mini_changelog": [], "display_version": null, @@ -112,6 +112,14 @@ "required": false, "sensitive": true, "source": "upstream-documentation" + }, + { + "name": "LC_ALL", + "example": "", + "required": false, + "sensitive": false, + "source": "upstream-documentation", + "prompt": "Language/locale (e.g. es_ES.UTF-8; translation of every application is not guaranteed)" } ], "volumes": [ @@ -365,6 +373,111 @@ "stability_seconds": 8, "accept_any_status": true, "verify_tls": true + }, + "selkies": { + "base": "FROM ghcr.io/linuxserver/baseimage-selkies:ubunturesolute@sha256:6efa3fd775a552938d862f75975d34c418ad26d028ba2c952da58682cfe1cb47", + "dockerfile_url": "https://raw.githubusercontent.com/junkerderprovinz/artcraft-apps/32bee0dea9bdaf5310c693210bea0d732a129ae8/Dockerfile", + "dockerfile_sha256": "69ab1a81d1696d1bd143a6fa5a121c034ddfb3e83008969340e8cd2413547fe1", + "reviewed_on": "2026-11-04", + "documentation": "https://docs.linuxserver.io/images/docker-baseimage-selkies/", + "nvidia": "available-in-advanced-mode-with-compatible-host-driver-and-toolkit", + "validation": "Intel/AMD tested on a Radeon 680M: GL compositor and VAAPI encoding on the render node" + }, + "device_requests": [], + "optional_devices": [], + "hardware_acceleration": { + "prompt": "Selkies desktop and streaming acceleration", + "default": "none", + "profiles": [ + { + "id": "none", + "label": "No GPU (CPU)", + "device_requests": [], + "environment": [ + { + "name": "AUTO_GPU", + "value": "false" + } + ] + }, + { + "id": "vaapi", + "label": "Intel/AMD (streaming rendering and encoding)", + "device_requests": [ + { + "id": "selkies-render", + "kind": "character-device", + "path_prompt": "Intel/AMD render node", + "host_path_default": "/dev/dri/renderD128", + "container_path_strategy": "same-as-host", + "mode": "0660", + "deny_write": false, + "gid_strategy": "host-device-gid", + "drm_vendor_ids": [ + "0x8086", + "0x1002" + ] + } + ], + "environment": [ + { + "name": "PIXELFLUX_WAYLAND", + "value": "true" + }, + { + "name": "AUTO_GPU", + "value": "false" + } + ], + "environment_from_devices": { + "DRINODE": [ + "selkies-render" + ], + "DRI_NODE": [ + "selkies-render" + ], + "ATTACHED_DEVICES_PERMS": [ + "selkies-render" + ] + } + }, + { + "id": "nvidia", + "label": "NVIDIA (Selkies rendering and NVENC)", + "device_requests": [ + { + "id": "selkies-nvidia", + "kind": "nvidia-runtime", + "device_selection": "all-requested-by-compose" + } + ], + "environment": [ + { + "name": "AUTO_GPU", + "value": "true" + }, + { + "name": "NVIDIA_VISIBLE_DEVICES", + "value": "all" + }, + { + "name": "NVIDIA_DRIVER_CAPABILITIES", + "value": "compute,video,graphics,utility,display" + } + ] + } + ] + }, + "gpu_validation": { + "device_inventory": "host-sysfs-and-stat", + "application_acceleration": "requires-workload-test", + "tone_mapping": "not-implied-by-device-access" + }, + "device_permissions": { + "strategy": "linuxserver-native-init", + "service_user": "abc", + "environment": "ATTACHED_DEVICES_PERMS", + "paths": "all-resolved-selected-character-devices" } }, "adaptations": [ diff --git a/oci/catalog/curated/photocraft.json b/oci/catalog/curated/photocraft.json index 57ea1fc1..7d95f12f 100644 --- a/oci/catalog/curated/photocraft.json +++ b/oci/catalog/curated/photocraft.json @@ -41,8 +41,8 @@ "Use a trusted HTTPS reverse proxy for browser access. Port 3001 uses the upstream self-signed certificate; port 3000 is for an HTTP reverse-proxy backend.", "The upstream default has no login. Optional CUSTOM_USER and PASSWORD variables enable HTTP basic authentication; do not expose an unauthenticated desktop to untrusted networks.", "/config holds settings and desktop state and is included in Proxmox backups. /storage holds documents and supports a managed volume or an explicitly selected host directory; host directories require separate backups.", - "The default uses software rendering. GPU acceleration and other CPU architectures are not claimed tested by a CPU-only amd64 installation.", - "Without an assigned GPU, an application may ask to switch to CPU rendering. Choose the CPU option; hardware acceleration is not required for the default configuration." + "The default installation draws on the CPU. The advanced installation can assign an Intel or AMD GPU, which the desktop, the application and the video stream then use; NVIDIA is offered when the host has its driver and the NVIDIA Container Toolkit.", + "Without a GPU, an application may ask to switch to CPU rendering. Choose the CPU option; the application remembers it." ], "mini_changelog": [], "display_version": null, @@ -112,6 +112,14 @@ "required": false, "sensitive": true, "source": "upstream-documentation" + }, + { + "name": "LC_ALL", + "example": "", + "required": false, + "sensitive": false, + "source": "upstream-documentation", + "prompt": "Language/locale (e.g. es_ES.UTF-8; translation of every application is not guaranteed)" } ], "volumes": [ @@ -365,6 +373,111 @@ "stability_seconds": 8, "accept_any_status": true, "verify_tls": true + }, + "selkies": { + "base": "FROM ghcr.io/linuxserver/baseimage-selkies:ubunturesolute@sha256:6efa3fd775a552938d862f75975d34c418ad26d028ba2c952da58682cfe1cb47", + "dockerfile_url": "https://raw.githubusercontent.com/junkerderprovinz/artcraft-apps/32bee0dea9bdaf5310c693210bea0d732a129ae8/Dockerfile", + "dockerfile_sha256": "69ab1a81d1696d1bd143a6fa5a121c034ddfb3e83008969340e8cd2413547fe1", + "reviewed_on": "2026-11-04", + "documentation": "https://docs.linuxserver.io/images/docker-baseimage-selkies/", + "nvidia": "available-in-advanced-mode-with-compatible-host-driver-and-toolkit", + "validation": "Intel/AMD tested on a Radeon 680M: GL compositor and VAAPI encoding on the render node" + }, + "device_requests": [], + "optional_devices": [], + "hardware_acceleration": { + "prompt": "Selkies desktop and streaming acceleration", + "default": "none", + "profiles": [ + { + "id": "none", + "label": "No GPU (CPU)", + "device_requests": [], + "environment": [ + { + "name": "AUTO_GPU", + "value": "false" + } + ] + }, + { + "id": "vaapi", + "label": "Intel/AMD (streaming rendering and encoding)", + "device_requests": [ + { + "id": "selkies-render", + "kind": "character-device", + "path_prompt": "Intel/AMD render node", + "host_path_default": "/dev/dri/renderD128", + "container_path_strategy": "same-as-host", + "mode": "0660", + "deny_write": false, + "gid_strategy": "host-device-gid", + "drm_vendor_ids": [ + "0x8086", + "0x1002" + ] + } + ], + "environment": [ + { + "name": "PIXELFLUX_WAYLAND", + "value": "true" + }, + { + "name": "AUTO_GPU", + "value": "false" + } + ], + "environment_from_devices": { + "DRINODE": [ + "selkies-render" + ], + "DRI_NODE": [ + "selkies-render" + ], + "ATTACHED_DEVICES_PERMS": [ + "selkies-render" + ] + } + }, + { + "id": "nvidia", + "label": "NVIDIA (Selkies rendering and NVENC)", + "device_requests": [ + { + "id": "selkies-nvidia", + "kind": "nvidia-runtime", + "device_selection": "all-requested-by-compose" + } + ], + "environment": [ + { + "name": "AUTO_GPU", + "value": "true" + }, + { + "name": "NVIDIA_VISIBLE_DEVICES", + "value": "all" + }, + { + "name": "NVIDIA_DRIVER_CAPABILITIES", + "value": "compute,video,graphics,utility,display" + } + ] + } + ] + }, + "gpu_validation": { + "device_inventory": "host-sysfs-and-stat", + "application_acceleration": "requires-workload-test", + "tone_mapping": "not-implied-by-device-access" + }, + "device_permissions": { + "strategy": "linuxserver-native-init", + "service_user": "abc", + "environment": "ATTACHED_DEVICES_PERMS", + "paths": "all-resolved-selected-character-devices" } }, "adaptations": [ diff --git a/oci/catalog/curated/soundcraft.json b/oci/catalog/curated/soundcraft.json index 9eb74e04..1ad3ac3c 100644 --- a/oci/catalog/curated/soundcraft.json +++ b/oci/catalog/curated/soundcraft.json @@ -41,8 +41,8 @@ "Use a trusted HTTPS reverse proxy for browser access. Port 3001 uses the upstream self-signed certificate; port 3000 is for an HTTP reverse-proxy backend.", "The upstream default has no login. Optional CUSTOM_USER and PASSWORD variables enable HTTP basic authentication; do not expose an unauthenticated desktop to untrusted networks.", "/config holds settings and desktop state and is included in Proxmox backups. /storage holds documents and supports a managed volume or an explicitly selected host directory; host directories require separate backups.", - "The default uses software rendering. GPU acceleration and other CPU architectures are not claimed tested by a CPU-only amd64 installation.", - "Without an assigned GPU, an application may ask to switch to CPU rendering. Choose the CPU option; hardware acceleration is not required for the default configuration." + "The default installation draws on the CPU. The advanced installation can assign an Intel or AMD GPU, which the desktop, the application and the video stream then use; NVIDIA is offered when the host has its driver and the NVIDIA Container Toolkit.", + "Without a GPU, an application may ask to switch to CPU rendering. Choose the CPU option; the application remembers it." ], "mini_changelog": [], "display_version": null, @@ -112,6 +112,14 @@ "required": false, "sensitive": true, "source": "upstream-documentation" + }, + { + "name": "LC_ALL", + "example": "", + "required": false, + "sensitive": false, + "source": "upstream-documentation", + "prompt": "Language/locale (e.g. es_ES.UTF-8; translation of every application is not guaranteed)" } ], "volumes": [ @@ -365,6 +373,111 @@ "stability_seconds": 8, "accept_any_status": true, "verify_tls": true + }, + "selkies": { + "base": "FROM ghcr.io/linuxserver/baseimage-selkies:ubunturesolute@sha256:6efa3fd775a552938d862f75975d34c418ad26d028ba2c952da58682cfe1cb47", + "dockerfile_url": "https://raw.githubusercontent.com/junkerderprovinz/artcraft-apps/32bee0dea9bdaf5310c693210bea0d732a129ae8/Dockerfile", + "dockerfile_sha256": "69ab1a81d1696d1bd143a6fa5a121c034ddfb3e83008969340e8cd2413547fe1", + "reviewed_on": "2026-11-04", + "documentation": "https://docs.linuxserver.io/images/docker-baseimage-selkies/", + "nvidia": "available-in-advanced-mode-with-compatible-host-driver-and-toolkit", + "validation": "Intel/AMD tested on a Radeon 680M: GL compositor and VAAPI encoding on the render node" + }, + "device_requests": [], + "optional_devices": [], + "hardware_acceleration": { + "prompt": "Selkies desktop and streaming acceleration", + "default": "none", + "profiles": [ + { + "id": "none", + "label": "No GPU (CPU)", + "device_requests": [], + "environment": [ + { + "name": "AUTO_GPU", + "value": "false" + } + ] + }, + { + "id": "vaapi", + "label": "Intel/AMD (streaming rendering and encoding)", + "device_requests": [ + { + "id": "selkies-render", + "kind": "character-device", + "path_prompt": "Intel/AMD render node", + "host_path_default": "/dev/dri/renderD128", + "container_path_strategy": "same-as-host", + "mode": "0660", + "deny_write": false, + "gid_strategy": "host-device-gid", + "drm_vendor_ids": [ + "0x8086", + "0x1002" + ] + } + ], + "environment": [ + { + "name": "PIXELFLUX_WAYLAND", + "value": "true" + }, + { + "name": "AUTO_GPU", + "value": "false" + } + ], + "environment_from_devices": { + "DRINODE": [ + "selkies-render" + ], + "DRI_NODE": [ + "selkies-render" + ], + "ATTACHED_DEVICES_PERMS": [ + "selkies-render" + ] + } + }, + { + "id": "nvidia", + "label": "NVIDIA (Selkies rendering and NVENC)", + "device_requests": [ + { + "id": "selkies-nvidia", + "kind": "nvidia-runtime", + "device_selection": "all-requested-by-compose" + } + ], + "environment": [ + { + "name": "AUTO_GPU", + "value": "true" + }, + { + "name": "NVIDIA_VISIBLE_DEVICES", + "value": "all" + }, + { + "name": "NVIDIA_DRIVER_CAPABILITIES", + "value": "compute,video,graphics,utility,display" + } + ] + } + ] + }, + "gpu_validation": { + "device_inventory": "host-sysfs-and-stat", + "application_acceleration": "requires-workload-test", + "tone_mapping": "not-implied-by-device-access" + }, + "device_permissions": { + "strategy": "linuxserver-native-init", + "service_user": "abc", + "environment": "ATTACHED_DEVICES_PERMS", + "paths": "all-resolved-selected-character-devices" } }, "adaptations": [ diff --git a/oci/catalog/curated/vectorcraft.json b/oci/catalog/curated/vectorcraft.json index 29db86d6..20ae3977 100644 --- a/oci/catalog/curated/vectorcraft.json +++ b/oci/catalog/curated/vectorcraft.json @@ -41,8 +41,8 @@ "Use a trusted HTTPS reverse proxy for browser access. Port 3001 uses the upstream self-signed certificate; port 3000 is for an HTTP reverse-proxy backend.", "The upstream default has no login. Optional CUSTOM_USER and PASSWORD variables enable HTTP basic authentication; do not expose an unauthenticated desktop to untrusted networks.", "/config holds settings and desktop state and is included in Proxmox backups. /storage holds documents and supports a managed volume or an explicitly selected host directory; host directories require separate backups.", - "The default uses software rendering. GPU acceleration and other CPU architectures are not claimed tested by a CPU-only amd64 installation.", - "Without an assigned GPU, an application may ask to switch to CPU rendering. Choose the CPU option; hardware acceleration is not required for the default configuration." + "The default installation draws on the CPU. The advanced installation can assign an Intel or AMD GPU, which the desktop, the application and the video stream then use; NVIDIA is offered when the host has its driver and the NVIDIA Container Toolkit.", + "Without a GPU, an application may ask to switch to CPU rendering. Choose the CPU option; the application remembers it." ], "mini_changelog": [], "display_version": null, @@ -112,6 +112,14 @@ "required": false, "sensitive": true, "source": "upstream-documentation" + }, + { + "name": "LC_ALL", + "example": "", + "required": false, + "sensitive": false, + "source": "upstream-documentation", + "prompt": "Language/locale (e.g. es_ES.UTF-8; translation of every application is not guaranteed)" } ], "volumes": [ @@ -365,6 +373,111 @@ "stability_seconds": 8, "accept_any_status": true, "verify_tls": true + }, + "selkies": { + "base": "FROM ghcr.io/linuxserver/baseimage-selkies:ubunturesolute@sha256:6efa3fd775a552938d862f75975d34c418ad26d028ba2c952da58682cfe1cb47", + "dockerfile_url": "https://raw.githubusercontent.com/junkerderprovinz/artcraft-apps/32bee0dea9bdaf5310c693210bea0d732a129ae8/Dockerfile", + "dockerfile_sha256": "69ab1a81d1696d1bd143a6fa5a121c034ddfb3e83008969340e8cd2413547fe1", + "reviewed_on": "2026-11-04", + "documentation": "https://docs.linuxserver.io/images/docker-baseimage-selkies/", + "nvidia": "available-in-advanced-mode-with-compatible-host-driver-and-toolkit", + "validation": "Intel/AMD tested on a Radeon 680M: GL compositor and VAAPI encoding on the render node" + }, + "device_requests": [], + "optional_devices": [], + "hardware_acceleration": { + "prompt": "Selkies desktop and streaming acceleration", + "default": "none", + "profiles": [ + { + "id": "none", + "label": "No GPU (CPU)", + "device_requests": [], + "environment": [ + { + "name": "AUTO_GPU", + "value": "false" + } + ] + }, + { + "id": "vaapi", + "label": "Intel/AMD (streaming rendering and encoding)", + "device_requests": [ + { + "id": "selkies-render", + "kind": "character-device", + "path_prompt": "Intel/AMD render node", + "host_path_default": "/dev/dri/renderD128", + "container_path_strategy": "same-as-host", + "mode": "0660", + "deny_write": false, + "gid_strategy": "host-device-gid", + "drm_vendor_ids": [ + "0x8086", + "0x1002" + ] + } + ], + "environment": [ + { + "name": "PIXELFLUX_WAYLAND", + "value": "true" + }, + { + "name": "AUTO_GPU", + "value": "false" + } + ], + "environment_from_devices": { + "DRINODE": [ + "selkies-render" + ], + "DRI_NODE": [ + "selkies-render" + ], + "ATTACHED_DEVICES_PERMS": [ + "selkies-render" + ] + } + }, + { + "id": "nvidia", + "label": "NVIDIA (Selkies rendering and NVENC)", + "device_requests": [ + { + "id": "selkies-nvidia", + "kind": "nvidia-runtime", + "device_selection": "all-requested-by-compose" + } + ], + "environment": [ + { + "name": "AUTO_GPU", + "value": "true" + }, + { + "name": "NVIDIA_VISIBLE_DEVICES", + "value": "all" + }, + { + "name": "NVIDIA_DRIVER_CAPABILITIES", + "value": "compute,video,graphics,utility,display" + } + ] + } + ] + }, + "gpu_validation": { + "device_inventory": "host-sysfs-and-stat", + "application_acceleration": "requires-workload-test", + "tone_mapping": "not-implied-by-device-access" + }, + "device_permissions": { + "strategy": "linuxserver-native-init", + "service_user": "abc", + "environment": "ATTACHED_DEVICES_PERMS", + "paths": "all-resolved-selected-character-devices" } }, "adaptations": [ diff --git a/oci/catalog/curated/wordcraft.json b/oci/catalog/curated/wordcraft.json index 7e0c6602..df437c08 100644 --- a/oci/catalog/curated/wordcraft.json +++ b/oci/catalog/curated/wordcraft.json @@ -41,8 +41,8 @@ "Use a trusted HTTPS reverse proxy for browser access. Port 3001 uses the upstream self-signed certificate; port 3000 is for an HTTP reverse-proxy backend.", "The upstream default has no login. Optional CUSTOM_USER and PASSWORD variables enable HTTP basic authentication; do not expose an unauthenticated desktop to untrusted networks.", "/config holds settings and desktop state and is included in Proxmox backups. /storage holds documents and supports a managed volume or an explicitly selected host directory; host directories require separate backups.", - "The default uses software rendering. GPU acceleration and other CPU architectures are not claimed tested by a CPU-only amd64 installation.", - "Without an assigned GPU, an application may ask to switch to CPU rendering. Choose the CPU option; hardware acceleration is not required for the default configuration." + "The default installation draws on the CPU. The advanced installation can assign an Intel or AMD GPU, which the desktop, the application and the video stream then use; NVIDIA is offered when the host has its driver and the NVIDIA Container Toolkit.", + "Without a GPU, an application may ask to switch to CPU rendering. Choose the CPU option; the application remembers it." ], "mini_changelog": [], "display_version": null, @@ -112,6 +112,14 @@ "required": false, "sensitive": true, "source": "upstream-documentation" + }, + { + "name": "LC_ALL", + "example": "", + "required": false, + "sensitive": false, + "source": "upstream-documentation", + "prompt": "Language/locale (e.g. es_ES.UTF-8; translation of every application is not guaranteed)" } ], "volumes": [ @@ -365,6 +373,111 @@ "stability_seconds": 8, "accept_any_status": true, "verify_tls": true + }, + "selkies": { + "base": "FROM ghcr.io/linuxserver/baseimage-selkies:ubunturesolute@sha256:6efa3fd775a552938d862f75975d34c418ad26d028ba2c952da58682cfe1cb47", + "dockerfile_url": "https://raw.githubusercontent.com/junkerderprovinz/artcraft-apps/32bee0dea9bdaf5310c693210bea0d732a129ae8/Dockerfile", + "dockerfile_sha256": "69ab1a81d1696d1bd143a6fa5a121c034ddfb3e83008969340e8cd2413547fe1", + "reviewed_on": "2026-11-04", + "documentation": "https://docs.linuxserver.io/images/docker-baseimage-selkies/", + "nvidia": "available-in-advanced-mode-with-compatible-host-driver-and-toolkit", + "validation": "Intel/AMD tested on a Radeon 680M: GL compositor and VAAPI encoding on the render node" + }, + "device_requests": [], + "optional_devices": [], + "hardware_acceleration": { + "prompt": "Selkies desktop and streaming acceleration", + "default": "none", + "profiles": [ + { + "id": "none", + "label": "No GPU (CPU)", + "device_requests": [], + "environment": [ + { + "name": "AUTO_GPU", + "value": "false" + } + ] + }, + { + "id": "vaapi", + "label": "Intel/AMD (streaming rendering and encoding)", + "device_requests": [ + { + "id": "selkies-render", + "kind": "character-device", + "path_prompt": "Intel/AMD render node", + "host_path_default": "/dev/dri/renderD128", + "container_path_strategy": "same-as-host", + "mode": "0660", + "deny_write": false, + "gid_strategy": "host-device-gid", + "drm_vendor_ids": [ + "0x8086", + "0x1002" + ] + } + ], + "environment": [ + { + "name": "PIXELFLUX_WAYLAND", + "value": "true" + }, + { + "name": "AUTO_GPU", + "value": "false" + } + ], + "environment_from_devices": { + "DRINODE": [ + "selkies-render" + ], + "DRI_NODE": [ + "selkies-render" + ], + "ATTACHED_DEVICES_PERMS": [ + "selkies-render" + ] + } + }, + { + "id": "nvidia", + "label": "NVIDIA (Selkies rendering and NVENC)", + "device_requests": [ + { + "id": "selkies-nvidia", + "kind": "nvidia-runtime", + "device_selection": "all-requested-by-compose" + } + ], + "environment": [ + { + "name": "AUTO_GPU", + "value": "true" + }, + { + "name": "NVIDIA_VISIBLE_DEVICES", + "value": "all" + }, + { + "name": "NVIDIA_DRIVER_CAPABILITIES", + "value": "compute,video,graphics,utility,display" + } + ] + } + ] + }, + "gpu_validation": { + "device_inventory": "host-sysfs-and-stat", + "application_acceleration": "requires-workload-test", + "tone_mapping": "not-implied-by-device-access" + }, + "device_permissions": { + "strategy": "linuxserver-native-init", + "service_user": "abc", + "environment": "ATTACHED_DEVICES_PERMS", + "paths": "all-resolved-selected-character-devices" } }, "adaptations": [ diff --git a/oci/src/proxmenux_oci/catalog_refresh.py b/oci/src/proxmenux_oci/catalog_refresh.py index 86bb65dd..138f37e4 100644 --- a/oci/src/proxmenux_oci/catalog_refresh.py +++ b/oci/src/proxmenux_oci/catalog_refresh.py @@ -513,9 +513,7 @@ class CatalogRefresh: text += "\n" + translate("New applications since your last visit: {count}").format(count=added) if updated: text += "\n" + translate("Updated recipes since your last visit: {count}").format(count=updated) - if self.active: - text += "\n" + translate("Refreshing the application catalog...") - elif self.failed: + if self.failed: text += "\n" + translate("Catalog refresh unavailable; using the local catalog.") return text diff --git a/oci/src/proxmenux_oci/cli.py b/oci/src/proxmenux_oci/cli.py index e2c9025f..84e2d26c 100644 --- a/oci/src/proxmenux_oci/cli.py +++ b/oci/src/proxmenux_oci/cli.py @@ -606,8 +606,9 @@ def interactive(catalog: Catalog) -> int: updates.wait() continue try: - kwargs = ({'refresh': lambda: updates.changed() or catalog_refresh.changed()} - if updates.active or catalog_refresh.active else {}) + # The catalog downloads behind the open menu without closing it: + # a new catalog is shown the next time the menu is drawn. + kwargs = {'refresh': updates.changed} if updates.active else {} selected = ui.choose(text, entries, selection, size=MENU_SIZE, **kwargs) except MenuRefresh: continue diff --git a/oci/src/proxmenux_oci/gpu.py b/oci/src/proxmenux_oci/gpu.py index f9a7c851..c7d4426b 100644 --- a/oci/src/proxmenux_oci/gpu.py +++ b/oci/src/proxmenux_oci/gpu.py @@ -70,7 +70,12 @@ def apply_gpu_contract(template: dict[str, Any]) -> None: def apply_selkies_contract(template): profile = template['proxmox']['installer_profile'] - if not template['container_contract']['image']['reference'].startswith('lscr.io/linuxserver/'): + # A LinuxServer image, or one whose reviewed Dockerfile is built on the + # LinuxServer Selkies base and so has the same init and GPU variables. + built_on_base = str(profile['selkies'].get('base', '')).startswith( + 'FROM ghcr.io/linuxserver/baseimage-selkies:') + if not (template['container_contract']['image']['reference'].startswith('lscr.io/linuxserver/') + or built_on_base): raise ValueError(translate('The Selkies profile requires a verified LinuxServer image')) environment = template['container_contract']['environment'] if not any(e['name'] == 'LC_ALL' for e in environment): diff --git a/oci/tests/test_catalog_refresh.py b/oci/tests/test_catalog_refresh.py index 7ce2abea..a7aa729f 100644 --- a/oci/tests/test_catalog_refresh.py +++ b/oci/tests/test_catalog_refresh.py @@ -361,9 +361,8 @@ class CatalogRefreshTests(unittest.TestCase): next_visit = refresh.CatalogRefresh(self.root, Catalog(self.root)) self.assertIn("New applications since your last visit: 1", next_visit.describe()) - def test_main_menu_redraws_totals_and_news_after_background_refresh(self): + def test_the_download_never_closes_the_open_menu_and_shows_on_the_next_draw(self): from proxmenux_oci import cli, updates - from proxmenux_oci.ui import MenuRefresh status = refresh.CatalogRefresh(self.root, Catalog(self.root)) status.process = Mock(returncode=0) status.process.poll.return_value = None @@ -374,14 +373,16 @@ class CatalogRefreshTests(unittest.TestCase): def choose(self, text, entries, default, **kwargs): screens.append((text, dict(entries))) if len(screens) == 1: + # The catalog finishes downloading while the menu is open: + # nothing may close it, so no refresh is watched. + owner.assertNotIn('refresh', kwargs) + owner.assertNotIn('Refreshing the application catalog', text) owner.add_app() owner.sync() refresh.write_json(refresh.cache_root(owner.root) / 'main-result.json', {"ok": True, "changed": True}) status.process.poll.return_value = 0 - self_refreshed = kwargs['refresh']() - owner.assertTrue(self_refreshed) - raise MenuRefresh() + return 'search' # any action brings the user back to the menu return None checker = Mock(active=False) checker.status.return_value = {"available": []} @@ -396,6 +397,7 @@ class CatalogRefreshTests(unittest.TestCase): patch.object(refresh, 'CatalogRefresh', return_value=status), \ patch.object(cli, 'PROJECT_ROOT', self.root), \ patch.object(cli, 'interactive_ui', return_value=UI()), \ + patch.object(cli, '_search'), \ patch.object(updates, 'UpdateCheck', return_value=checker_context): self.assertEqual(cli.interactive(Catalog(self.root)), 0) self.assertIn('Available applications: 1', screens[0][0]) @@ -447,7 +449,8 @@ class CatalogRefreshTests(unittest.TestCase): with patch.object(refresh.threading, "Thread") as thread: with status: self.assertTrue(status.active) - self.assertIn("Refreshing", status.describe()) + # The download is transparent: the open menu does not announce it. + self.assertNotIn("Refreshing", status.describe()) thread.return_value.start.assert_called_once() spawn.return_value.wait.assert_not_called() diff --git a/oci/tests/test_selkies_base_images.py b/oci/tests/test_selkies_base_images.py new file mode 100644 index 00000000..9c949bba --- /dev/null +++ b/oci/tests/test_selkies_base_images.py @@ -0,0 +1,50 @@ +"""An image built on the LinuxServer Selkies base, but published by someone +else, receives the same GPU profile as the LinuxServer Selkies images.""" +import copy +import json +from pathlib import Path +import sys +import unittest + +ROOT = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(ROOT / 'src')) + +from proxmenux_oci.catalog import Catalog +from proxmenux_oci.gpu import apply_selkies_contract + +ARTCRAFT = ('cadcraft', 'deckcraft', 'designcraft', 'effectcraft', 'figcraft', 'filmcraft', 'gridcraft', + 'lightcraft', 'pdfcraft', 'photocraft', 'soundcraft', 'vectorcraft', 'wordcraft') + + +def template(reference, base): + return {'container_contract': {'image': {'reference': reference}, 'environment': []}, + 'proxmox': {'installer_profile': {'selkies': {'base': base}}}} + + +class SelkiesBaseImageTests(unittest.TestCase): + def test_an_image_built_on_the_selkies_base_gets_the_gpu_profile(self): + built = template('docker.io/junkerderprovinz/photocraft:latest', + 'FROM ghcr.io/linuxserver/baseimage-selkies:ubunturesolute') + apply_selkies_contract(built) + profiles = built['proxmox']['installer_profile']['hardware_acceleration']['profiles'] + self.assertEqual([item['id'] for item in profiles], ['none', 'vaapi', 'nvidia']) + + def test_any_other_image_is_still_refused(self): + other = template('docker.io/someone/desktop:latest', 'FROM ubuntu:24.04') + with self.assertRaises(ValueError): + apply_selkies_contract(copy.deepcopy(other)) + + def test_every_artcraft_app_offers_the_gpu_to_its_desktop(self): + catalog = Catalog(ROOT) + for app in ARTCRAFT: + with self.subTest(app=app): + profile = catalog.compose(app)['proxmox']['installer_profile'] + vaapi = next(item for item in profile['hardware_acceleration']['profiles'] if item['id'] == 'vaapi') + self.assertEqual(set(vaapi['environment_from_devices']), + {'DRINODE', 'DRI_NODE', 'ATTACHED_DEVICES_PERMS'}) + self.assertEqual(profile['device_permissions']['environment'], 'ATTACHED_DEVICES_PERMS') + self.assertEqual(profile['hardware_acceleration']['default'], 'none') + + +if __name__ == '__main__': + unittest.main()