diff --git a/development/github-desktop.yaml b/development/github-desktop.yaml deleted file mode 100644 index 6c9990f..0000000 --- a/development/github-desktop.yaml +++ /dev/null @@ -1,36 +0,0 @@ -apiVersion: stream.space/v1alpha1 -kind: Template -metadata: - name: github-desktop - namespace: workspaces - annotations: - streamspace.dev/image-status: pending-migration -spec: - displayName: Github-Desktop - description: Github Desktop is an open source Electron-based GitHub app. It is written - in TypeScript and uses React. - category: Development - baseImage: lscr.io/linuxserver/github-desktop: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: - - github-desktop - - development diff --git a/development/mysql-workbench.yaml b/development/mysql-workbench.yaml deleted file mode 100644 index baf103f..0000000 --- a/development/mysql-workbench.yaml +++ /dev/null @@ -1,38 +0,0 @@ -apiVersion: stream.space/v1alpha1 -kind: Template -metadata: - name: mysql-workbench - namespace: workspaces - annotations: - streamspace.dev/image-status: pending-migration -spec: - displayName: Mysql-Workbench - description: MySQL Workbench is a unified visual tool for database architects, developers, - and DBAs. MySQL Workbench provides data modeling, SQL development, and comprehensive - administration tools for server configuration, user administration, backup, and - much more. - category: Development - baseImage: lscr.io/linuxserver/mysql-workbench:latest - defaultResources: - memory: 4Gi - cpu: 2000m - 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: - - mysql-workbench - - development diff --git a/development/sqlitebrowser.yaml b/development/sqlitebrowser.yaml deleted file mode 100644 index d660f25..0000000 --- a/development/sqlitebrowser.yaml +++ /dev/null @@ -1,36 +0,0 @@ -apiVersion: stream.space/v1alpha1 -kind: Template -metadata: - name: sqlitebrowser - namespace: workspaces - annotations: - streamspace.dev/image-status: pending-migration -spec: - displayName: Sqlitebrowser - description: DB Browser for SQLite is a high quality, visual, open source tool to - create, design, and edit database files compatible with SQLite. - category: Development - baseImage: lscr.io/linuxserver/sqlitebrowser:latest - defaultResources: - memory: 4Gi - cpu: 2000m - 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: - - sqlitebrowser - - development diff --git a/development/yaak.yaml b/development/yaak.yaml deleted file mode 100644 index 708d000..0000000 --- a/development/yaak.yaml +++ /dev/null @@ -1,37 +0,0 @@ -apiVersion: stream.space/v1alpha1 -kind: Template -metadata: - name: yaak - namespace: workspaces - annotations: - streamspace.dev/image-status: pending-migration -spec: - displayName: Yaak - description: yaak is a desktop API client for organizing and executing REST, GraphQL, - and gRPC requests. It's built using [Tauri](https://tauri.app/), [Rust](https://www.rust-lang.org/), - and [ReactJS](https://react.dev/). - category: Development - baseImage: lscr.io/linuxserver/yaak: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: - - yaak - - development diff --git a/images/github-desktop-selkies/Dockerfile b/images/github-desktop-selkies/Dockerfile new file mode 100644 index 0000000..c35ecd7 --- /dev/null +++ b/images/github-desktop-selkies/Dockerfile @@ -0,0 +1,32 @@ +# StreamSpace GitHub Desktop with Selkies-GStreamer (WebRTC) +# +# GitHub Inc. doesn't ship an official Linux client. shiftkey/desktop +# is the community-maintained Linux fork — it tracks upstream GitHub +# Desktop changes and ships .deb / .rpm / .AppImage builds for Linux. + +FROM ghcr.io/streamspace-dev/selkies-base:latest + +LABEL org.opencontainers.image.title="StreamSpace GitHub Desktop (shiftkey fork)" +LABEL org.opencontainers.image.description="GitHub Desktop Linux fork 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; \ + deb_url="$(curl -fsSL https://api.github.com/repos/shiftkey/desktop/releases/latest \ + | jq -r '.assets[] | select(.name | test("linux-amd64-.*\\.deb$")) | .browser_download_url' \ + | head -1)"; \ + if [ -z "${deb_url}" ]; then echo "Could not resolve GitHub Desktop .deb URL" >&2; exit 1; fi; \ + curl -fsSL -o /tmp/github-desktop.deb "${deb_url}"; \ + apt-get update; \ + apt-get install -y --no-install-recommends /tmp/github-desktop.deb; \ + rm -f /tmp/github-desktop.deb; \ + apt-get clean && rm -rf /var/lib/apt/lists/* + +USER user + +# Electron — needs --no-sandbox in unprivileged containers. +CMD ["github-desktop", "--no-sandbox"] diff --git a/images/github-desktop-selkies/PLATFORMS b/images/github-desktop-selkies/PLATFORMS new file mode 100644 index 0000000..303dc7a --- /dev/null +++ b/images/github-desktop-selkies/PLATFORMS @@ -0,0 +1 @@ +linux/amd64 diff --git a/images/mysql-workbench-selkies/Dockerfile b/images/mysql-workbench-selkies/Dockerfile new file mode 100644 index 0000000..dc4a2f1 --- /dev/null +++ b/images/mysql-workbench-selkies/Dockerfile @@ -0,0 +1,29 @@ +# StreamSpace MySQL Workbench with Selkies-GStreamer (WebRTC) +# +# MySQL Workbench is not in Ubuntu noble's apt archives. Oracle ships +# it as a versioned .deb from dev.mysql.com (which 302s to cdn.mysql.com). +# We pin to a known-working version. Bump MYSQL_WORKBENCH_VERSION to +# upgrade — there's no "latest" symlink. + +FROM ghcr.io/streamspace-dev/selkies-base:latest + +LABEL org.opencontainers.image.title="StreamSpace MySQL Workbench" +LABEL org.opencontainers.image.description="MySQL Workbench DBA / SQL client 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 +ARG MYSQL_WORKBENCH_VERSION=8.0.42 + +RUN set -eux; \ + curl -fsSL -o /tmp/mysql-workbench.deb \ + "https://dev.mysql.com/get/Downloads/MySQLGUITools/mysql-workbench-community_${MYSQL_WORKBENCH_VERSION}-1ubuntu24.04_amd64.deb"; \ + apt-get update; \ + apt-get install -y --no-install-recommends /tmp/mysql-workbench.deb; \ + rm -f /tmp/mysql-workbench.deb; \ + apt-get clean && rm -rf /var/lib/apt/lists/* + +USER user +CMD ["mysql-workbench"] diff --git a/images/mysql-workbench-selkies/PLATFORMS b/images/mysql-workbench-selkies/PLATFORMS new file mode 100644 index 0000000..303dc7a --- /dev/null +++ b/images/mysql-workbench-selkies/PLATFORMS @@ -0,0 +1 @@ +linux/amd64 diff --git a/images/sqlitebrowser-selkies/Dockerfile b/images/sqlitebrowser-selkies/Dockerfile new file mode 100644 index 0000000..292c4d0 --- /dev/null +++ b/images/sqlitebrowser-selkies/Dockerfile @@ -0,0 +1,21 @@ +# StreamSpace DB Browser for SQLite with Selkies-GStreamer (WebRTC) +# +# GUI editor for SQLite databases. Mount your .db / .sqlite file at +# runtime to inspect/edit it. + +FROM ghcr.io/streamspace-dev/selkies-base:latest + +LABEL org.opencontainers.image.title="StreamSpace DB Browser for SQLite" +LABEL org.opencontainers.image.description="DB Browser for SQLite (sqlitebrowser) 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 apt-get update && \ + apt-get install -y --no-install-recommends sqlitebrowser && \ + apt-get clean && rm -rf /var/lib/apt/lists/* + +USER user +CMD ["sqlitebrowser"] diff --git a/images/sqlitebrowser-selkies/PLATFORMS b/images/sqlitebrowser-selkies/PLATFORMS new file mode 100644 index 0000000..303dc7a --- /dev/null +++ b/images/sqlitebrowser-selkies/PLATFORMS @@ -0,0 +1 @@ +linux/amd64 diff --git a/images/yaak-selkies/Dockerfile b/images/yaak-selkies/Dockerfile new file mode 100644 index 0000000..ea4921e --- /dev/null +++ b/images/yaak-selkies/Dockerfile @@ -0,0 +1,31 @@ +# StreamSpace Yaak with Selkies-GStreamer (WebRTC) +# +# Yaak is a desktop API client (Postman/Insomnia alternative). Vendor +# .deb from mountain-loop/yaak GitHub releases. + +FROM ghcr.io/streamspace-dev/selkies-base:latest + +LABEL org.opencontainers.image.title="StreamSpace Yaak" +LABEL org.opencontainers.image.description="Yaak desktop API client 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; \ + deb_url="$(curl -fsSL https://api.github.com/repos/mountain-loop/yaak/releases/latest \ + | jq -r '.assets[] | select(.name | test("^yaak_.*_amd64\\.deb$")) | .browser_download_url' \ + | head -1)"; \ + if [ -z "${deb_url}" ]; then echo "Could not resolve Yaak .deb URL" >&2; exit 1; fi; \ + curl -fsSL -o /tmp/yaak.deb "${deb_url}"; \ + apt-get update; \ + apt-get install -y --no-install-recommends /tmp/yaak.deb; \ + rm -f /tmp/yaak.deb; \ + apt-get clean && rm -rf /var/lib/apt/lists/* + +USER user + +# Tauri/Electron-style — needs --no-sandbox in unprivileged containers. +CMD ["yaak", "--no-sandbox"] diff --git a/images/yaak-selkies/PLATFORMS b/images/yaak-selkies/PLATFORMS new file mode 100644 index 0000000..303dc7a --- /dev/null +++ b/images/yaak-selkies/PLATFORMS @@ -0,0 +1 @@ +linux/amd64 diff --git a/selkies/github-desktop-selkies.yaml b/selkies/github-desktop-selkies.yaml new file mode 100644 index 0000000..60e1038 --- /dev/null +++ b/selkies/github-desktop-selkies.yaml @@ -0,0 +1,47 @@ +apiVersion: stream.space/v1alpha1 +kind: Template +metadata: + name: github-desktop-selkies + namespace: workspaces + labels: + app.kubernetes.io/name: github-desktop-selkies + app.kubernetes.io/component: template + streamspace.io/category: development + streamspace.io/streaming-protocol: selkies + annotations: + streamspace.dev/image-status: published +spec: + displayName: GitHub Desktop + description: GitHub Desktop (community Linux fork via shiftkey/desktop) streamed via Selkies-GStreamer (WebRTC). + category: Development + icon: https://raw.githubusercontent.com/streamspace-dev/streamspace/main/ui/public/icons/github-desktop.svg + baseImage: ghcr.io/streamspace-dev/github-desktop-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: 'false' + capabilities: + - Network + - Clipboard + tags: + - development + - git + - github + - selkies diff --git a/selkies/mysql-workbench-selkies.yaml b/selkies/mysql-workbench-selkies.yaml new file mode 100644 index 0000000..0de7d45 --- /dev/null +++ b/selkies/mysql-workbench-selkies.yaml @@ -0,0 +1,49 @@ +apiVersion: stream.space/v1alpha1 +kind: Template +metadata: + name: mysql-workbench-selkies + namespace: workspaces + labels: + app.kubernetes.io/name: mysql-workbench-selkies + app.kubernetes.io/component: template + streamspace.io/category: development + streamspace.io/streaming-protocol: selkies + annotations: + streamspace.dev/image-status: published +spec: + displayName: MySQL Workbench + description: MySQL Workbench DBA / SQL editor / schema designer streamed via Selkies-GStreamer (WebRTC). + category: Development + icon: https://raw.githubusercontent.com/streamspace-dev/streamspace/main/ui/public/icons/mysql-workbench.svg + baseImage: ghcr.io/streamspace-dev/mysql-workbench-selkies:latest + streamingProtocol: selkies + defaultResources: + requests: + memory: 2Gi + cpu: 1000m + limits: + memory: 4Gi + 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: 'false' + capabilities: + - Network + - Clipboard + tags: + - development + - database + - mysql + - sql + - mysql-workbench + - selkies diff --git a/selkies/sqlitebrowser-selkies.yaml b/selkies/sqlitebrowser-selkies.yaml new file mode 100644 index 0000000..a605c5a --- /dev/null +++ b/selkies/sqlitebrowser-selkies.yaml @@ -0,0 +1,48 @@ +apiVersion: stream.space/v1alpha1 +kind: Template +metadata: + name: sqlitebrowser-selkies + namespace: workspaces + labels: + app.kubernetes.io/name: sqlitebrowser-selkies + app.kubernetes.io/component: template + streamspace.io/category: development + streamspace.io/streaming-protocol: selkies + annotations: + streamspace.dev/image-status: published +spec: + displayName: DB Browser for SQLite + description: DB Browser for SQLite (sqlitebrowser) — GUI editor for SQLite databases — streamed via Selkies-GStreamer (WebRTC). + category: Development + icon: https://raw.githubusercontent.com/streamspace-dev/streamspace/main/ui/public/icons/sqlitebrowser.svg + baseImage: ghcr.io/streamspace-dev/sqlitebrowser-selkies:latest + streamingProtocol: selkies + defaultResources: + requests: + memory: 1Gi + cpu: 500m + limits: + memory: 2Gi + cpu: 1000m + 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: + - development + - database + - sqlite + - sqlitebrowser + - selkies diff --git a/selkies/yaak-selkies.yaml b/selkies/yaak-selkies.yaml new file mode 100644 index 0000000..5007077 --- /dev/null +++ b/selkies/yaak-selkies.yaml @@ -0,0 +1,49 @@ +apiVersion: stream.space/v1alpha1 +kind: Template +metadata: + name: yaak-selkies + namespace: workspaces + labels: + app.kubernetes.io/name: yaak-selkies + app.kubernetes.io/component: template + streamspace.io/category: development + streamspace.io/streaming-protocol: selkies + annotations: + streamspace.dev/image-status: published +spec: + displayName: Yaak + description: Yaak desktop API client (Postman/Insomnia alternative) streamed via Selkies-GStreamer (WebRTC). + category: Development + icon: https://raw.githubusercontent.com/streamspace-dev/streamspace/main/ui/public/icons/yaak.svg + baseImage: ghcr.io/streamspace-dev/yaak-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: 'false' + capabilities: + - Network + - Clipboard + tags: + - development + - api + - rest + - graphql + - yaak + - selkies