Skip to content

feat: add 5 Selkies images (freecad, obsidian, thunderbird, obs-studio, kdenlive)#17

Merged
JoshuaAFerguson merged 1 commit into
mainfrom
feat/external-apt-and-media-apps
Apr 26, 2026
Merged

feat: add 5 Selkies images (freecad, obsidian, thunderbird, obs-studio, kdenlive)#17
JoshuaAFerguson merged 1 commit into
mainfrom
feat/external-apt-and-media-apps

Conversation

@JoshuaAFerguson

Copy link
Copy Markdown
Member

Summary

Five more Selkies-native images, each demonstrating a different non-Ubuntu install path. The diversity here is the point: most apps people want need something beyond plain `apt install`.

Image Install path CMD
freecad-selkies `ppa:freecad-maintainers/freecad-stable` (was removed from Ubuntu 24.04) `freecad`
obsidian-selkies Latest amd64 .deb from `api.github.com/repos/obsidianmd/obsidian-releases` `obsidian --no-sandbox`
thunderbird-selkies Mozilla tarball from `download.mozilla.org` (Mozilla apt repo only ships Firefox) `thunderbird`
obs-studio-selkies Ubuntu apt `obs`
kdenlive-selkies Ubuntu apt `kdenlive`

Install path notes

  • FreeCAD: pulls `software-properties-common` just for `add-apt-repository`, then purges it. Saves ~40 MB.
  • Obsidian: rebuilds get the latest version automatically (build-time GitHub API call). The base already has `jq`, so no extra deps.
  • Thunderbird: spent some time on this — first iteration tried the same Mozilla apt repo + apt-pin trick that works for Firefox. apt installed Ubuntu's snap-stub of thunderbird because Mozilla's apt repo doesn't actually ship thunderbird (only `firefox` / `firefox-beta` / `devedition` / `nightly` / `esr` / `mozillavpn`). The tarball install at `/opt/thunderbird` + symlink is the correct fix.
  • OBS Studio: SELKIES_ENABLE_AUDIO=true so screen-recording with audio works. Mem limit 8 GiB (request 4) for capture buffers.
  • Kdenlive: SELKIES_ENABLE_AUDIO=true. Mem limit 8 GiB for video editing buffers.

Removed legacy KasmVNC templates

`design/freecad.yaml`, `audio-video/kdenlive.yaml`. (No legacy entries existed for obsidian, thunderbird, or obs-studio — all three are NEW additions to the catalog.)

Local verification

```
fc-test Up 26s healthy HTTP 200 18227b | 31 freecad
ob-test Up 30s healthy HTTP 200 18227b | 33 obsidian --no-sandbox
tb-test Up 18s healthy HTTP 200 18227b | 32 thunderbird (Mozilla Thunderbird 150.0,
multi-process: parent + crashhelper +
tab + rdd + content procs)
obs-test Up 33s healthy HTTP 200 18227b | 32 obs
kd-test Up 33s healthy HTTP 200 18227b | 32 kdenlive
```

Deferred from this batch

  • ungoogled-chromium-selkies: openSUSE Build Service `home:ungoogled_chromium` repo is empty (project moved off OBS). Need to research the current binary distribution path — likely the `ungoogled-chromium-binaries` GitHub project tracker or one of the community PPAs. Tracked as task #50.

Test plan

  • Local build + run + healthy + HTTP 200 (all 5)
  • App processes correctly running (note Thunderbird's multi-process tree confirms the tarball install actually works — early iteration was a defunct snap-stub)
  • CI matrix builds all 5 successfully
  • CI `Validate Template Manifests` accepts all 5 new manifests
  • After merge: `ghcr.io/streamspace-dev/{freecad,obsidian,thunderbird,obs-studio,kdenlive}-selkies:latest` all publish

Catalog progress

After this lands: 18 published Selkies-native images. New categories covered: Communication (thunderbird), beyond-libreoffice productivity (obsidian), screen-recording (obs-studio), video editing (kdenlive). Next batches worth queueing: chat cluster (discord/slack/signal/element), dev cluster (godot/openscad/dbeaver), 3D-printer slicer cluster (prusaslicer/bambustudio/orcaslicer/cura).

freecad-selkies (PPA install):
  Pulls software-properties-common just to invoke add-apt-repository,
  enables ppa:freecad-maintainers/freecad-stable, installs freecad,
  then purges software-properties-common to keep image lean.
  Reason: freecad was removed from Ubuntu 24.04 archives entirely.

obsidian-selkies (.deb from GitHub releases):
  At build time, hits api.github.com/repos/obsidianmd/obsidian-releases
  /releases/latest with jq to resolve the latest amd64 .deb URL, then
  curl + apt install. Rebuilds get the latest version automatically.
  CMD: ["obsidian", "--no-sandbox"] (Electron sandbox).

thunderbird-selkies (Mozilla tarball):
  Mozilla's apt repo (packages.mozilla.org) only ships Firefox variants
  — no Thunderbird — so we install from the official tarball at
  download.mozilla.org/?product=thunderbird-latest&os=linux64. Tarball
  is self-contained; runtime libs (gtk3, dbus, alsa) are in the base.
  Symlinks /opt/thunderbird/thunderbird → /usr/local/bin/thunderbird.

obs-studio-selkies (Ubuntu apt):
  apt install obs-studio. SELKIES_ENABLE_AUDIO=true so screen-recording
  with audio works. 8 GiB memory limit (request 4) — capture buffers
  can grow large.

kdenlive-selkies (Ubuntu apt):
  apt install kdenlive. SELKIES_ENABLE_AUDIO=true. 8 GiB memory limit
  for video editing buffers.

Removed legacy KasmVNC templates:
- design/freecad.yaml
- audio-video/kdenlive.yaml

Verified locally — built in parallel, ran each on a different port,
all five healthy and serving HTTP 200 with the right app process:
  fc-test   Up 26s healthy  HTTP 200  | 31 freecad
  ob-test   Up 30s healthy  HTTP 200  | 33 obsidian --no-sandbox
  tb-test   Up 18s healthy  HTTP 200  | 32 thunderbird (multi-process,
                                          Mozilla Thunderbird 150.0)
  obs-test  Up 33s healthy  HTTP 200  | 32 obs
  kd-test   Up 33s healthy  HTTP 200  | 32 kdenlive

Deferred from this batch:
- ungoogled-chromium-selkies: openSUSE OBS home:ungoogled_chromium
  repo is empty (project moved off OBS). Need to research the current
  binary distribution path (likely the ungoogled-chromium-binaries
  GitHub project tracker).

Note on Thunderbird debugging: first iteration tried the Mozilla apt
repo with the same pin trick that works for firefox. apt installed
Ubuntu's snap-stub of thunderbird because Mozilla's apt repo doesn't
actually ship thunderbird — only firefox/firefox-beta/devedition/
nightly/esr/mozillavpn. The tarball install is the correct fix.

@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: ebf7f0c863

ℹ️ 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".

curl -fsSL -o /tmp/thunderbird.tar.xz \
"https://download.mozilla.org/?product=thunderbird-latest&os=linux64&lang=en-US"; \
install -d -m 0755 /opt; \
tar xJf /tmp/thunderbird.tar.xz -C /opt; \

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 Use the correct tar format for Thunderbird download

download.mozilla.org/?product=thunderbird-latest&os=linux64 serves a bzip2-compressed tarball, but this Dockerfile saves it as .tar.xz and extracts with tar xJf (xz mode). In that case the extraction step fails during image build, so the thunderbird-selkies image cannot be produced. Switch to a bzip2 extraction path (or detect the archive type) so builds are reliable.

Useful? React with 👍 / 👎.

@JoshuaAFerguson JoshuaAFerguson merged commit a94bb0c into main Apr 26, 2026
7 checks passed
@JoshuaAFerguson JoshuaAFerguson deleted the feat/external-apt-and-media-apps branch April 26, 2026 18:03
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