diff --git a/images/joplin-selkies/Dockerfile b/images/joplin-selkies/Dockerfile new file mode 100644 index 0000000..4d34d27 --- /dev/null +++ b/images/joplin-selkies/Dockerfile @@ -0,0 +1,35 @@ +# StreamSpace Joplin with Selkies-GStreamer (WebRTC) +# +# Joplin is an open-source notes app with sync. Distributed as an +# AppImage from laurent22/joplin GitHub releases. Standard +# --appimage-extract pattern. + +FROM ghcr.io/streamspace-dev/selkies-base:latest + +LABEL org.opencontainers.image.title="StreamSpace Joplin" +LABEL org.opencontainers.image.description="Joplin note-taking app 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/laurent22/joplin/releases/latest \ + | jq -r '.assets[] | select(.name | test("^Joplin-.*\\.AppImage$")) | .browser_download_url' \ + | head -1)"; \ + if [ -z "${img_url}" ]; then echo "Could not resolve Joplin AppImage URL" >&2; exit 1; fi; \ + cd /tmp; \ + curl -fsSL -o joplin.AppImage "${img_url}"; \ + chmod +x joplin.AppImage; \ + ./joplin.AppImage --appimage-extract >/dev/null; \ + if [ -d squashfs-root ] && [ ! -L squashfs-root ]; then \ + mv squashfs-root /opt/joplin; \ + else \ + mv AppDir /opt/joplin; \ + fi; \ + rm -rf joplin.AppImage AppDir squashfs-root + +USER user +CMD ["/opt/joplin/AppRun", "--no-sandbox"] diff --git a/images/joplin-selkies/PLATFORMS b/images/joplin-selkies/PLATFORMS new file mode 100644 index 0000000..303dc7a --- /dev/null +++ b/images/joplin-selkies/PLATFORMS @@ -0,0 +1 @@ +linux/amd64 diff --git a/images/onlyoffice-selkies/Dockerfile b/images/onlyoffice-selkies/Dockerfile new file mode 100644 index 0000000..eefe030 --- /dev/null +++ b/images/onlyoffice-selkies/Dockerfile @@ -0,0 +1,26 @@ +# StreamSpace OnlyOffice Desktop Editors with Selkies-GStreamer +# +# OnlyOffice's stable .deb redirect URL. Office suite alternative to +# LibreOffice (Word/Excel/PowerPoint compatible). + +FROM ghcr.io/streamspace-dev/selkies-base:latest + +LABEL org.opencontainers.image.title="StreamSpace OnlyOffice Desktop Editors" +LABEL org.opencontainers.image.description="OnlyOffice Desktop Editors 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; \ + curl -fsSL -o /tmp/onlyoffice.deb \ + "https://download.onlyoffice.com/install/desktop/editors/linux/onlyoffice-desktopeditors_amd64.deb"; \ + apt-get update; \ + apt-get install -y --no-install-recommends /tmp/onlyoffice.deb; \ + rm -f /tmp/onlyoffice.deb; \ + apt-get clean && rm -rf /var/lib/apt/lists/* + +USER user +CMD ["desktopeditors", "--no-sandbox"] diff --git a/images/onlyoffice-selkies/PLATFORMS b/images/onlyoffice-selkies/PLATFORMS new file mode 100644 index 0000000..303dc7a --- /dev/null +++ b/images/onlyoffice-selkies/PLATFORMS @@ -0,0 +1 @@ +linux/amd64 diff --git a/images/zotero-selkies/Dockerfile b/images/zotero-selkies/Dockerfile new file mode 100644 index 0000000..eaaf4ed --- /dev/null +++ b/images/zotero-selkies/Dockerfile @@ -0,0 +1,32 @@ +# StreamSpace Zotero with Selkies-GStreamer (WebRTC) +# +# Zotero is an open-source research/citation manager. Distributed as +# a self-contained tar.xz from zotero.org (Mozilla-stack runtime +# bundled). The /download/client/dl?platform=linux-x86_64 URL is a +# stable redirect to the current versioned tarball. + +FROM ghcr.io/streamspace-dev/selkies-base:latest + +LABEL org.opencontainers.image.title="StreamSpace Zotero" +LABEL org.opencontainers.image.description="Zotero research citation manager 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; \ + curl -fsSL -o /tmp/zotero.tar.xz \ + "https://www.zotero.org/download/client/dl?platform=linux-x86_64&channel=release"; \ + install -d -m 0755 /opt; \ + tar xJf /tmp/zotero.tar.xz -C /opt; \ + rm -f /tmp/zotero.tar.xz; \ + # Tarball extracts to a versioned dir like Zotero_linux-x86_64/. + # Rename to /opt/zotero/ so the CMD path is stable across upgrades. + mv /opt/Zotero_linux-x86_64 /opt/zotero; \ + apt-get clean && rm -rf /var/lib/apt/lists/* + +USER user +CMD ["/opt/zotero/zotero"] diff --git a/images/zotero-selkies/PLATFORMS b/images/zotero-selkies/PLATFORMS new file mode 100644 index 0000000..303dc7a --- /dev/null +++ b/images/zotero-selkies/PLATFORMS @@ -0,0 +1 @@ +linux/amd64 diff --git a/productivity/joplin.yaml b/productivity/joplin.yaml deleted file mode 100644 index d755895..0000000 --- a/productivity/joplin.yaml +++ /dev/null @@ -1,36 +0,0 @@ -apiVersion: stream.space/v1alpha1 -kind: Template -metadata: - name: joplin - namespace: workspaces - annotations: - streamspace.dev/image-status: pending-migration -spec: - displayName: Joplin - description: Joplin is a free, open source note taking and to-do application, which - can handle a large number of notes organised into notebooks. - category: Productivity - baseImage: lscr.io/linuxserver/joplin:latest - defaultResources: - memory: 3Gi - cpu: 1500m - 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: - - joplin - - productivity diff --git a/productivity/onlyoffice.yaml b/productivity/onlyoffice.yaml deleted file mode 100644 index a892d5b..0000000 --- a/productivity/onlyoffice.yaml +++ /dev/null @@ -1,37 +0,0 @@ -apiVersion: stream.space/v1alpha1 -kind: Template -metadata: - name: onlyoffice - namespace: workspaces - annotations: - streamspace.dev/image-status: pending-migration -spec: - displayName: Onlyoffice - description: ONLYOFFICE provides a full range of tools to create, edit and collaborate - on text documents, spreadsheets, presentations, PDF forms and regular PDF files - on web, desktop and mobile platforms. - category: Productivity - baseImage: lscr.io/linuxserver/onlyoffice:latest - defaultResources: - memory: 3Gi - cpu: 1500m - 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: - - onlyoffice - - productivity diff --git a/productivity/zotero.yaml b/productivity/zotero.yaml deleted file mode 100644 index a3e3785..0000000 --- a/productivity/zotero.yaml +++ /dev/null @@ -1,36 +0,0 @@ -apiVersion: stream.space/v1alpha1 -kind: Template -metadata: - name: zotero - namespace: workspaces - annotations: - streamspace.dev/image-status: pending-migration -spec: - displayName: Zotero - description: Zotero is a free, easy-to-use tool to help you collect, organize, annotate, - cite, and share research. - category: Productivity - baseImage: lscr.io/linuxserver/zotero:latest - defaultResources: - memory: 3Gi - cpu: 1500m - 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: - - zotero - - productivity diff --git a/selkies/joplin-selkies.yaml b/selkies/joplin-selkies.yaml new file mode 100644 index 0000000..a5d483d --- /dev/null +++ b/selkies/joplin-selkies.yaml @@ -0,0 +1,48 @@ +apiVersion: stream.space/v1alpha1 +kind: Template +metadata: + name: joplin-selkies + namespace: workspaces + labels: + app.kubernetes.io/name: joplin-selkies + app.kubernetes.io/component: template + streamspace.io/category: productivity + streamspace.io/streaming-protocol: selkies + annotations: + streamspace.dev/image-status: published +spec: + displayName: Joplin + description: Joplin open-source note-taking and to-do app with sync, streamed via Selkies-GStreamer (WebRTC). + category: Productivity + icon: https://raw.githubusercontent.com/streamspace-dev/streamspace/main/ui/public/icons/joplin.svg + baseImage: ghcr.io/streamspace-dev/joplin-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: + - productivity + - notes + - markdown + - joplin + - selkies diff --git a/selkies/onlyoffice-selkies.yaml b/selkies/onlyoffice-selkies.yaml new file mode 100644 index 0000000..a6941da --- /dev/null +++ b/selkies/onlyoffice-selkies.yaml @@ -0,0 +1,47 @@ +apiVersion: stream.space/v1alpha1 +kind: Template +metadata: + name: onlyoffice-selkies + namespace: workspaces + labels: + app.kubernetes.io/name: onlyoffice-selkies + app.kubernetes.io/component: template + streamspace.io/category: productivity + streamspace.io/streaming-protocol: selkies + annotations: + streamspace.dev/image-status: published +spec: + displayName: OnlyOffice + description: OnlyOffice Desktop Editors (MS Office-compatible suite — Documents, Spreadsheets, Presentations) streamed via Selkies-GStreamer (WebRTC). + category: Productivity + icon: https://raw.githubusercontent.com/streamspace-dev/streamspace/main/ui/public/icons/onlyoffice.svg + baseImage: ghcr.io/streamspace-dev/onlyoffice-selkies:latest + streamingProtocol: selkies + defaultResources: + requests: + memory: 3Gi + cpu: 1500m + limits: + memory: 3Gi + cpu: 3000m + 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: + - productivity + - office + - onlyoffice + - selkies diff --git a/selkies/zotero-selkies.yaml b/selkies/zotero-selkies.yaml new file mode 100644 index 0000000..5671346 --- /dev/null +++ b/selkies/zotero-selkies.yaml @@ -0,0 +1,48 @@ +apiVersion: stream.space/v1alpha1 +kind: Template +metadata: + name: zotero-selkies + namespace: workspaces + labels: + app.kubernetes.io/name: zotero-selkies + app.kubernetes.io/component: template + streamspace.io/category: productivity + streamspace.io/streaming-protocol: selkies + annotations: + streamspace.dev/image-status: published +spec: + displayName: Zotero + description: Zotero open-source research and citation manager streamed via Selkies-GStreamer (WebRTC). + category: Productivity + icon: https://raw.githubusercontent.com/streamspace-dev/streamspace/main/ui/public/icons/zotero.svg + baseImage: ghcr.io/streamspace-dev/zotero-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: + - productivity + - research + - citations + - zotero + - selkies