Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions images/joplin-selkies/Dockerfile
Original file line number Diff line number Diff line change
@@ -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)"; \
Comment on lines +20 to +21

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Filter Joplin release asset to amd64 before selecting first match

The Docker build is pinned to linux/amd64 (images/joplin-selkies/PLATFORMS), but this query matches any *.AppImage asset and then takes head -1. If upstream publishes multiple AppImages (for example an arm64 asset listed before x86_64), the build will download the wrong architecture and fail during ./joplin.AppImage --appimage-extract with an exec-format error. Restrict the jq selector to the amd64/x86_64 artifact so asset ordering cannot break builds.

Useful? React with 👍 / 👎.

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"]
1 change: 1 addition & 0 deletions images/joplin-selkies/PLATFORMS
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
linux/amd64
26 changes: 26 additions & 0 deletions images/onlyoffice-selkies/Dockerfile
Original file line number Diff line number Diff line change
@@ -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"]
1 change: 1 addition & 0 deletions images/onlyoffice-selkies/PLATFORMS
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
linux/amd64
32 changes: 32 additions & 0 deletions images/zotero-selkies/Dockerfile
Original file line number Diff line number Diff line change
@@ -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"]
1 change: 1 addition & 0 deletions images/zotero-selkies/PLATFORMS
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
linux/amd64
36 changes: 0 additions & 36 deletions productivity/joplin.yaml

This file was deleted.

37 changes: 0 additions & 37 deletions productivity/onlyoffice.yaml

This file was deleted.

36 changes: 0 additions & 36 deletions productivity/zotero.yaml

This file was deleted.

48 changes: 48 additions & 0 deletions selkies/joplin-selkies.yaml
Original file line number Diff line number Diff line change
@@ -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
47 changes: 47 additions & 0 deletions selkies/onlyoffice-selkies.yaml
Original file line number Diff line number Diff line change
@@ -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
48 changes: 48 additions & 0 deletions selkies/zotero-selkies.yaml
Original file line number Diff line number Diff line change
@@ -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
Loading