Skip to content

feat: add 3 productivity-tail Selkies images (joplin, onlyoffice, zotero)#26

Merged
JoshuaAFerguson merged 1 commit into
mainfrom
feat/productivity-tail-selkies
Apr 27, 2026
Merged

feat: add 3 productivity-tail Selkies images (joplin, onlyoffice, zotero)#26
JoshuaAFerguson merged 1 commit into
mainfrom
feat/productivity-tail-selkies

Conversation

@JoshuaAFerguson

Copy link
Copy Markdown
Member

Summary

Three productivity apps, each demonstrating a different distribution pattern:

Image Distribution Format
joplin-selkies laurent22/joplin GitHub releases AppImage (Electron)
onlyoffice-selkies download.onlyoffice.com stable redirect .deb (Electron)
zotero-selkies zotero.org/download stable redirect .tar.xz (Mozilla stack)

All three use vendor stable URLs that auto-resolve to the current version at build time.

Removed legacy KasmVNC templates

`productivity/joplin.yaml`, `productivity/onlyoffice.yaml`, `productivity/zotero.yaml`.

Deferred from this batch

WPS Office: Linux distribution effectively abandoned by vendor (last updated April 2023, no direct .deb URL on wps.com — only JS-driven download button). Tracked as research task. Same posture as eufyMake — defer until vendor resumes Linux support or community fork emerges.

Local verification skipped (Docker disk)

All 3 vendor URLs verified live before writing:

  • Joplin: `v3.5.13` with `Joplin-3.5.13.AppImage` asset on GitHub
  • OnlyOffice: HEAD returns HTTP 200, content-type `vnd.debian.binary-package`
  • Zotero: redirects to `Zotero-9.0.1_linux-x86_64.tar.xz`

Test plan

  • All 3 vendor URLs verified live
  • CI matrix builds all 3 successfully
  • CI `Validate Template Manifests` accepts all 3 new manifests
  • After merge: all 3 publish to ghcr.io

Catalog progress

After this lands: 45 published Selkies-native images. Productivity category: libreoffice, calibre, obsidian, xournalpp, joplin, onlyoffice, zotero (7 total). ~26 templates remain pending-migration.

Remaining clusters

  • Audio production (ardour, lmms — apt; small batch)
  • Communication tail (pidgin, ferdium, webcord, altus — Electron + apt mix)
  • Development tail (mysql-workbench, sqlitebrowser, github-desktop, yaak — mixed)
  • Desktop environments (kali-linux, webtop variants — heavyweight, may want different approach)

…ero)

Three different distribution patterns covered in one batch:

joplin-selkies (AppImage from GitHub releases):
  laurent22/joplin GitHub releases. Defensive AppImage-extract pattern
  (handle both AppDir/ and squashfs-root/). Electron — invoked via
  /opt/joplin/AppRun --no-sandbox.

onlyoffice-selkies (vendor stable .deb redirect):
  download.onlyoffice.com/install/desktop/editors/linux/onlyoffice-
  desktopeditors_amd64.deb is a stable URL that always 302s to the
  current build. Electron under the hood — needs --no-sandbox via
  the desktopeditors binary.

zotero-selkies (vendor tarball):
  zotero.org/download/client/dl?platform=linux-x86_64&channel=release
  redirects to a versioned tar.xz. Mozilla-stack runtime bundled
  (Zotero is built on Firefox tech). Extract to /opt/zotero/, invoke
  via absolute path.

Removed legacy KasmVNC templates:
- productivity/joplin.yaml
- productivity/onlyoffice.yaml
- productivity/zotero.yaml

Deferred from this batch:
- WPS Office: Linux distribution effectively abandoned (last updated
  April 2023, no direct .deb URL on wps.com — JS-driven download
  button only). Tracked as separate research task. Same posture as
  eufyMake — defer until vendor resumes Linux support.

Local rebuild + verify skipped (Docker disk constraint). All 3 vendor
URLs verified live before writing:
  joplin: latest tag v3.5.13 with Joplin-3.5.13.AppImage asset
  onlyoffice: HEAD returns HTTP 200 with content-type vnd.debian.binary-package
  zotero: 302 → download.zotero.org/client/release/9.0.1/Zotero-9.0.1_linux-x86_64.tar.xz
@JoshuaAFerguson JoshuaAFerguson merged commit 73c6f29 into main Apr 27, 2026
5 checks passed
@JoshuaAFerguson JoshuaAFerguson deleted the feat/productivity-tail-selkies branch April 27, 2026 19:16

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f267f37166

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +20 to +21
| jq -r '.assets[] | select(.name | test("^Joplin-.*\\.AppImage$")) | .browser_download_url' \
| head -1)"; \

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 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant