Skip to content

feat: add 4 browser-tail Selkies images (brave, opera, vivaldi, librewolf)#25

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

feat: add 4 browser-tail Selkies images (brave, opera, vivaldi, librewolf)#25
JoshuaAFerguson merged 1 commit into
mainfrom
feat/browser-tail-selkies

Conversation

@JoshuaAFerguson

Copy link
Copy Markdown
Member

Summary

Closes out the browser category. All four use the proven vendor-hosted apt repo pattern (Mozilla / Slack / Signal / Element shape).

Image Apt repo Suite/Component Engine
brave-selkies `brave-browser-apt-release.s3.brave.com` stable / main Chromium
opera-selkies `deb.opera.com/opera-stable` stable / non-free Chromium (proprietary)
vivaldi-selkies `repo.vivaldi.com/archive/deb` stable / main Chromium
librewolf-selkies `repo.librewolf.net` (NOT `deb.librewolf.net`) librewolf / main Firefox

The 3 Chromium-based browsers all use the same `--no-sandbox / --disable-dev-shm-usage / --disable-gpu-sandbox / --start-maximized` flag set we established for chrome-selkies. LibreWolf (Firefox-based) doesn't need any of those — Firefox's sandbox tolerates the unprivileged container with a warning, unlike Electron's hard requirement.

LibreWolf URL gotcha

`deb.librewolf.net` (the documented hostname in some Stack Overflow answers) returns 404. The canonical apt host is `repo.librewolf.net`. Their official install instructions actually use `extrepo` to abstract over this — we hardcode the resolved URL so we don't need to apt-install extrepo just for one repo.

The suite name is also unusual: `librewolf` (not an Ubuntu codename). Same packages work across noble/jammy/bookworm.

Removed legacy KasmVNC templates

`browsers/librewolf.yaml`, `browsers/opera.yaml`, `browsers/vivaldi.yaml`. Brave is a NEW addition (no legacy entry existed).

Local verification skipped (Docker disk)

All 4 vendor apt repos verified live via curl before writing:

  • brave-browser, opera-stable, vivaldi-stable confirmed in their respective Packages files
  • librewolf via `/dists/librewolf/Release` returning HTTP 200
  • All 4 GPG key URLs return HTTP 200

CI is the authoritative test for the build itself.

Test plan

  • All 4 vendor apt repos + key URLs probed live
  • CI matrix builds all 4 successfully
  • CI `Validate Template Manifests` accepts all 4 new manifests
  • After merge: all 4 publish to ghcr.io

Catalog progress

After this lands: 42 published Selkies-native images. Browser category: chrome, firefox, brave, opera, vivaldi, librewolf (6 total — comprehensive). ~29 templates remain pending-migration.

…wolf)

Closes out the browser category. All four use the vendor-hosted apt
repo pattern (Mozilla / Slack / Signal / Element shape):

brave-selkies (Brave Software apt):
  https://brave-browser-apt-release.s3.brave.com (S3-hosted),
  package brave-browser. Chromium fork — needs --no-sandbox /
  --disable-dev-shm-usage / --disable-gpu-sandbox + --start-maximized
  (same as chrome-selkies).

opera-selkies (Opera apt):
  https://deb.opera.com/opera-stable, suite "stable", component
  "non-free" (Opera is proprietary). Chromium fork with the standard
  Electron flags.

vivaldi-selkies (Vivaldi apt):
  https://repo.vivaldi.com/archive/deb/, suite "stable", component
  "main". Chromium fork — same flags.

librewolf-selkies (LibreWolf apt):
  https://repo.librewolf.net (note: deb.librewolf.net is a different
  host that 404s — repo.librewolf.net is canonical), suite
  "librewolf", component "main". Firefox fork — no --no-sandbox needed
  (Firefox's sandbox tolerates the unprivileged container with a
  warning, unlike Electron's hard requirement). Suite name not
  Ubuntu-codename-specific; same packages work across noble/jammy/
  bookworm.

Removed legacy KasmVNC templates:
- browsers/librewolf.yaml
- browsers/opera.yaml
- browsers/vivaldi.yaml

(Brave is a NEW addition — no legacy entry existed.)

Local rebuild + verify skipped — Docker disk constraint. All 4 vendor
apt repos and GPG key URLs verified live before writing:
  brave-browser:  Package: brave-browser   (Packages file)
  opera-stable:   Package: opera-stable    (Packages file)
  vivaldi-stable: Package: vivaldi-stable  (Packages file)
  librewolf:      /dists/librewolf/Release returns 200
All 4 GPG key URLs return HTTP 200.
@JoshuaAFerguson JoshuaAFerguson merged commit 0988420 into main Apr 27, 2026
6 checks passed
@JoshuaAFerguson JoshuaAFerguson deleted the feat/browser-tail-selkies branch April 27, 2026 19:10
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