diff --git a/audio-video/shotcut.yaml b/audio-video/shotcut.yaml deleted file mode 100644 index ef3bf02..0000000 --- a/audio-video/shotcut.yaml +++ /dev/null @@ -1,35 +0,0 @@ -apiVersion: stream.space/v1alpha1 -kind: Template -metadata: - name: shotcut - namespace: workspaces - annotations: - streamspace.dev/image-status: pending-migration -spec: - displayName: Shotcut - description: shotcut is a free, open source, cross-platform video editor. - category: Audio & Video - baseImage: lscr.io/linuxserver/shotcut:latest - defaultResources: - memory: 3Gi - cpu: 1500m - ports: - - name: http - containerPort: 8080 - protocol: TCP - env: - - name: PUID - value: '1000' - - name: PGID - value: '1000' - - name: TZ - value: America/New_York - volumeMounts: - - name: user-home - mountPath: /config - capabilities: - - Network - - Clipboard - tags: - - shotcut - - audio--video diff --git a/browsers/zen.yaml b/browsers/zen.yaml deleted file mode 100644 index d238997..0000000 --- a/browsers/zen.yaml +++ /dev/null @@ -1,36 +0,0 @@ -apiVersion: stream.space/v1alpha1 -kind: Template -metadata: - name: zen - namespace: workspaces - annotations: - streamspace.dev/image-status: pending-migration -spec: - displayName: Zen - description: Zen Browser is a free and open-source fork of Mozilla Firefox with - a focus on privacy, customizability and design. - category: Web Browsers - baseImage: lscr.io/linuxserver/zen:latest - defaultResources: - memory: 2Gi - cpu: 1000m - ports: - - name: vnc - containerPort: 3000 - protocol: TCP - env: - - name: PUID - value: '1000' - - name: PGID - value: '1000' - - name: TZ - value: America/New_York - volumeMounts: - - name: user-home - mountPath: /config - capabilities: - - Network - - Clipboard - tags: - - zen - - web-browsers diff --git a/design/cura.yaml b/design/cura.yaml deleted file mode 100644 index c37c389..0000000 --- a/design/cura.yaml +++ /dev/null @@ -1,37 +0,0 @@ -apiVersion: stream.space/v1alpha1 -kind: Template -metadata: - name: cura - namespace: workspaces - annotations: - streamspace.dev/image-status: pending-migration -spec: - displayName: Cura - description: UltiMaker Cura is free, easy-to-use 3D printing software trusted by - millions of users. Fine-tune your 3D model with 400+ settings for the best slicing - and printing results. - category: Design & Graphics - baseImage: lscr.io/linuxserver/cura:latest - defaultResources: - memory: 4Gi - cpu: 2000m - ports: - - name: vnc - containerPort: 3000 - protocol: TCP - env: - - name: PUID - value: '1000' - - name: PGID - value: '1000' - - name: TZ - value: America/New_York - volumeMounts: - - name: user-home - mountPath: /config - capabilities: - - Network - - Clipboard - tags: - - cura - - design--graphics diff --git a/images/cura-selkies/Dockerfile b/images/cura-selkies/Dockerfile new file mode 100644 index 0000000..b7ce216 --- /dev/null +++ b/images/cura-selkies/Dockerfile @@ -0,0 +1,35 @@ +# StreamSpace UltiMaker Cura with Selkies-GStreamer (WebRTC) +# +# UltiMaker Cura is a 3D-printer slicer — joins our existing trio +# (PrusaSlicer, Bambu Studio, OrcaSlicer). Distributed as AppImage +# from Ultimaker/Cura GitHub releases. + +FROM ghcr.io/streamspace-dev/selkies-base:latest + +LABEL org.opencontainers.image.title="StreamSpace UltiMaker Cura" +LABEL org.opencontainers.image.description="UltiMaker Cura 3D-printer slicer with Selkies-GStreamer (WebRTC) streaming for StreamSpace" +LABEL org.opencontainers.image.version="1.0.0" +LABEL org.opencontainers.image.vendor="StreamSpace" +LABEL org.opencontainers.image.source="https://github.com/streamspace-dev/streamspace-templates" + +USER root +ARG DEBIAN_FRONTEND=noninteractive + +RUN set -eux; \ + img_url="$(curl -fsSL https://api.github.com/repos/Ultimaker/Cura/releases/latest \ + | jq -r '.assets[] | select(.name | test("^UltiMaker-Cura-.*-linux-X64\\.AppImage$")) | .browser_download_url' \ + | head -1)"; \ + if [ -z "${img_url}" ]; then echo "Could not resolve Cura AppImage URL" >&2; exit 1; fi; \ + cd /tmp; \ + curl -fsSL -o cura.AppImage "${img_url}"; \ + chmod +x cura.AppImage; \ + ./cura.AppImage --appimage-extract >/dev/null; \ + if [ -d squashfs-root ] && [ ! -L squashfs-root ]; then \ + mv squashfs-root /opt/cura; \ + else \ + mv AppDir /opt/cura; \ + fi; \ + rm -rf cura.AppImage AppDir squashfs-root + +USER user +CMD ["/opt/cura/AppRun"] diff --git a/images/cura-selkies/PLATFORMS b/images/cura-selkies/PLATFORMS new file mode 100644 index 0000000..303dc7a --- /dev/null +++ b/images/cura-selkies/PLATFORMS @@ -0,0 +1 @@ +linux/amd64 diff --git a/images/prismlauncher-selkies/Dockerfile b/images/prismlauncher-selkies/Dockerfile new file mode 100644 index 0000000..56f76c5 --- /dev/null +++ b/images/prismlauncher-selkies/Dockerfile @@ -0,0 +1,43 @@ +# StreamSpace PrismLauncher with Selkies-GStreamer (WebRTC) +# +# PrismLauncher is the community-maintained Minecraft launcher +# (continuation of MultiMC). Manages multiple instances, mod loaders +# (Forge/Fabric/Quilt/NeoForge), accounts (Microsoft/offline), and +# resource packs. AppImage from PrismLauncher/PrismLauncher GitHub +# releases. + +FROM ghcr.io/streamspace-dev/selkies-base:latest + +LABEL org.opencontainers.image.title="StreamSpace PrismLauncher" +LABEL org.opencontainers.image.description="PrismLauncher Minecraft launcher with Selkies-GStreamer (WebRTC) streaming for StreamSpace" +LABEL org.opencontainers.image.version="1.0.0" +LABEL org.opencontainers.image.vendor="StreamSpace" +LABEL org.opencontainers.image.source="https://github.com/streamspace-dev/streamspace-templates" + +USER root +ARG DEBIAN_FRONTEND=noninteractive + +# OpenJDK runtime — Minecraft needs Java 17+ for modern versions. +# PrismLauncher's AppImage doesn't bundle a JRE; users typically +# install one via the launcher itself, but pre-installing avoids the +# first-launch delay. +RUN set -eux; \ + apt-get update && apt-get install -y --no-install-recommends openjdk-21-jre; \ + img_url="$(curl -fsSL https://api.github.com/repos/PrismLauncher/PrismLauncher/releases/latest \ + | jq -r '.assets[] | select(.name == "PrismLauncher-Linux-x86_64.AppImage") | .browser_download_url' \ + | head -1)"; \ + if [ -z "${img_url}" ]; then echo "Could not resolve PrismLauncher AppImage URL" >&2; exit 1; fi; \ + cd /tmp; \ + curl -fsSL -o prismlauncher.AppImage "${img_url}"; \ + chmod +x prismlauncher.AppImage; \ + ./prismlauncher.AppImage --appimage-extract >/dev/null; \ + if [ -d squashfs-root ] && [ ! -L squashfs-root ]; then \ + mv squashfs-root /opt/prismlauncher; \ + else \ + mv AppDir /opt/prismlauncher; \ + fi; \ + rm -rf prismlauncher.AppImage AppDir squashfs-root; \ + apt-get clean && rm -rf /var/lib/apt/lists/* + +USER user +CMD ["/opt/prismlauncher/AppRun"] diff --git a/images/prismlauncher-selkies/PLATFORMS b/images/prismlauncher-selkies/PLATFORMS new file mode 100644 index 0000000..303dc7a --- /dev/null +++ b/images/prismlauncher-selkies/PLATFORMS @@ -0,0 +1 @@ +linux/amd64 diff --git a/images/shotcut-selkies/Dockerfile b/images/shotcut-selkies/Dockerfile new file mode 100644 index 0000000..64e7607 --- /dev/null +++ b/images/shotcut-selkies/Dockerfile @@ -0,0 +1,35 @@ +# StreamSpace Shotcut with Selkies-GStreamer (WebRTC) +# +# Shotcut is a cross-platform non-linear video editor (joins +# kdenlive-selkies / openshot-selkies). Distributed as AppImage from +# mltframework/shotcut GitHub releases. + +FROM ghcr.io/streamspace-dev/selkies-base:latest + +LABEL org.opencontainers.image.title="StreamSpace Shotcut" +LABEL org.opencontainers.image.description="Shotcut video editor with Selkies-GStreamer (WebRTC) streaming for StreamSpace" +LABEL org.opencontainers.image.version="1.0.0" +LABEL org.opencontainers.image.vendor="StreamSpace" +LABEL org.opencontainers.image.source="https://github.com/streamspace-dev/streamspace-templates" + +USER root +ARG DEBIAN_FRONTEND=noninteractive + +RUN set -eux; \ + img_url="$(curl -fsSL https://api.github.com/repos/mltframework/shotcut/releases/latest \ + | jq -r '.assets[] | select(.name | test("^shotcut-linux-x86_64-.*\\.AppImage$")) | .browser_download_url' \ + | head -1)"; \ + if [ -z "${img_url}" ]; then echo "Could not resolve Shotcut AppImage URL" >&2; exit 1; fi; \ + cd /tmp; \ + curl -fsSL -o shotcut.AppImage "${img_url}"; \ + chmod +x shotcut.AppImage; \ + ./shotcut.AppImage --appimage-extract >/dev/null; \ + if [ -d squashfs-root ] && [ ! -L squashfs-root ]; then \ + mv squashfs-root /opt/shotcut; \ + else \ + mv AppDir /opt/shotcut; \ + fi; \ + rm -rf shotcut.AppImage AppDir squashfs-root + +USER user +CMD ["/opt/shotcut/AppRun"] diff --git a/images/shotcut-selkies/PLATFORMS b/images/shotcut-selkies/PLATFORMS new file mode 100644 index 0000000..303dc7a --- /dev/null +++ b/images/shotcut-selkies/PLATFORMS @@ -0,0 +1 @@ +linux/amd64 diff --git a/images/zen-selkies/Dockerfile b/images/zen-selkies/Dockerfile new file mode 100644 index 0000000..19fb777 --- /dev/null +++ b/images/zen-selkies/Dockerfile @@ -0,0 +1,33 @@ +# StreamSpace Zen Browser with Selkies-GStreamer (WebRTC) +# +# Zen Browser is a Firefox fork focused on workflow features +# (workspaces, vertical tabs, split view, glance preview). Distributed +# as self-contained tar.xz from zen-browser/desktop GitHub releases — +# Firefox-based runtime is bundled. + +FROM ghcr.io/streamspace-dev/selkies-base:latest + +LABEL org.opencontainers.image.title="StreamSpace Zen Browser" +LABEL org.opencontainers.image.description="Zen Browser (Firefox fork with workspaces/vertical tabs) with Selkies-GStreamer (WebRTC) streaming for StreamSpace" +LABEL org.opencontainers.image.version="1.0.0" +LABEL org.opencontainers.image.vendor="StreamSpace" +LABEL org.opencontainers.image.source="https://github.com/streamspace-dev/streamspace-templates" + +USER root +ARG DEBIAN_FRONTEND=noninteractive + +RUN set -eux; \ + apt-get update && apt-get install -y --no-install-recommends xz-utils; \ + tar_url="$(curl -fsSL https://api.github.com/repos/zen-browser/desktop/releases/latest \ + | jq -r '.assets[] | select(.name == "zen.linux-x86_64.tar.xz") | .browser_download_url' \ + | head -1)"; \ + if [ -z "${tar_url}" ]; then echo "Could not resolve Zen Browser tar.xz URL" >&2; exit 1; fi; \ + curl -fsSL -o /tmp/zen.tar.xz "${tar_url}"; \ + install -d -m 0755 /opt; \ + tar xJf /tmp/zen.tar.xz -C /opt; \ + rm -f /tmp/zen.tar.xz; \ + ln -s /opt/zen/zen /usr/local/bin/zen; \ + apt-get clean && rm -rf /var/lib/apt/lists/* + +USER user +CMD ["zen"] diff --git a/images/zen-selkies/PLATFORMS b/images/zen-selkies/PLATFORMS new file mode 100644 index 0000000..303dc7a --- /dev/null +++ b/images/zen-selkies/PLATFORMS @@ -0,0 +1 @@ +linux/amd64 diff --git a/selkies/cura-selkies.yaml b/selkies/cura-selkies.yaml new file mode 100644 index 0000000..1c50dde --- /dev/null +++ b/selkies/cura-selkies.yaml @@ -0,0 +1,49 @@ +apiVersion: stream.space/v1alpha1 +kind: Template +metadata: + name: cura-selkies + namespace: workspaces + labels: + app.kubernetes.io/name: cura-selkies + app.kubernetes.io/component: template + streamspace.io/category: design-graphics + streamspace.io/streaming-protocol: selkies + annotations: + streamspace.dev/image-status: published +spec: + displayName: UltiMaker Cura + description: UltiMaker Cura 3D-printer slicer streamed via Selkies-GStreamer (WebRTC). + category: Design & Graphics + icon: https://raw.githubusercontent.com/streamspace-dev/streamspace/main/ui/public/icons/cura.svg + baseImage: ghcr.io/streamspace-dev/cura-selkies:latest + streamingProtocol: selkies + defaultResources: + requests: + memory: 4Gi + cpu: 2000m + limits: + memory: 8Gi + cpu: 4000m + ports: + - name: selkies + containerPort: 8080 + protocol: TCP + env: + - name: TZ + value: UTC + - name: DISPLAY_SIZEW + value: '1920' + - name: DISPLAY_SIZEH + value: '1080' + - name: SELKIES_ENABLE_AUDIO + value: 'false' + capabilities: + - Network + - Clipboard + tags: + - design + - 3d-printing + - slicer + - cura + - ultimaker + - selkies diff --git a/selkies/prismlauncher-selkies.yaml b/selkies/prismlauncher-selkies.yaml new file mode 100644 index 0000000..5788352 --- /dev/null +++ b/selkies/prismlauncher-selkies.yaml @@ -0,0 +1,49 @@ +apiVersion: stream.space/v1alpha1 +kind: Template +metadata: + name: prismlauncher-selkies + namespace: workspaces + labels: + app.kubernetes.io/name: prismlauncher-selkies + app.kubernetes.io/component: template + streamspace.io/category: gaming + streamspace.io/streaming-protocol: selkies + annotations: + streamspace.dev/image-status: published +spec: + displayName: PrismLauncher + description: PrismLauncher Minecraft launcher (multi-instance, Forge/Fabric/Quilt/NeoForge mod loaders, Microsoft + offline accounts) streamed via Selkies-GStreamer (WebRTC). + category: Gaming + icon: https://raw.githubusercontent.com/streamspace-dev/streamspace/main/ui/public/icons/prismlauncher.svg + baseImage: ghcr.io/streamspace-dev/prismlauncher-selkies:latest + streamingProtocol: selkies + defaultResources: + requests: + memory: 4Gi + cpu: 2000m + limits: + memory: 8Gi + cpu: 4000m + ports: + - name: selkies + containerPort: 8080 + protocol: TCP + env: + - name: TZ + value: UTC + - name: DISPLAY_SIZEW + value: '1920' + - name: DISPLAY_SIZEH + value: '1080' + - name: SELKIES_ENABLE_AUDIO + value: 'true' + capabilities: + - Network + - Audio + - Clipboard + tags: + - gaming + - minecraft + - launcher + - prismlauncher + - selkies diff --git a/selkies/shotcut-selkies.yaml b/selkies/shotcut-selkies.yaml new file mode 100644 index 0000000..d94711b --- /dev/null +++ b/selkies/shotcut-selkies.yaml @@ -0,0 +1,49 @@ +apiVersion: stream.space/v1alpha1 +kind: Template +metadata: + name: shotcut-selkies + namespace: workspaces + labels: + app.kubernetes.io/name: shotcut-selkies + app.kubernetes.io/component: template + streamspace.io/category: audio-video + streamspace.io/streaming-protocol: selkies + annotations: + streamspace.dev/image-status: published +spec: + displayName: Shotcut + description: Shotcut cross-platform non-linear video editor streamed via Selkies-GStreamer (WebRTC). + category: Audio & Video + icon: https://raw.githubusercontent.com/streamspace-dev/streamspace/main/ui/public/icons/shotcut.svg + baseImage: ghcr.io/streamspace-dev/shotcut-selkies:latest + streamingProtocol: selkies + defaultResources: + requests: + memory: 4Gi + cpu: 2000m + limits: + memory: 8Gi + cpu: 4000m + ports: + - name: selkies + containerPort: 8080 + protocol: TCP + env: + - name: TZ + value: UTC + - name: DISPLAY_SIZEW + value: '1920' + - name: DISPLAY_SIZEH + value: '1080' + - name: SELKIES_ENABLE_AUDIO + value: 'true' + capabilities: + - Network + - Audio + - Clipboard + tags: + - audio-video + - video-editor + - nle + - shotcut + - selkies diff --git a/selkies/zen-selkies.yaml b/selkies/zen-selkies.yaml new file mode 100644 index 0000000..cd4dfd7 --- /dev/null +++ b/selkies/zen-selkies.yaml @@ -0,0 +1,50 @@ +apiVersion: stream.space/v1alpha1 +kind: Template +metadata: + name: zen-selkies + namespace: workspaces + labels: + app.kubernetes.io/name: zen-selkies + app.kubernetes.io/component: template + streamspace.io/category: web-browsers + streamspace.io/streaming-protocol: selkies + annotations: + streamspace.dev/image-status: published +spec: + displayName: Zen Browser + description: Zen Browser (Firefox fork with workspaces, vertical tabs, split view, glance preview) streamed via Selkies-GStreamer (WebRTC). + category: Web Browsers + icon: https://raw.githubusercontent.com/streamspace-dev/streamspace/main/ui/public/icons/zen.svg + baseImage: ghcr.io/streamspace-dev/zen-selkies:latest + streamingProtocol: selkies + defaultResources: + requests: + memory: 2Gi + cpu: 1000m + limits: + memory: 2Gi + cpu: 2000m + ports: + - name: selkies + containerPort: 8080 + protocol: TCP + env: + - name: TZ + value: UTC + - name: DISPLAY_SIZEW + value: '1920' + - name: DISPLAY_SIZEH + value: '1080' + - name: SELKIES_ENABLE_AUDIO + value: 'true' + capabilities: + - Network + - Audio + - Clipboard + tags: + - browser + - web + - firefox-fork + - workflow + - zen + - selkies