Skip to content

Repository files navigation

dudley-os

Dudley is Josh's personal Project Bluefin variant: a bootc operating-system image that keeps Bluefin's desktop and userland contract while adding Dudley-specific defaults, tools, and release streams.

Dudley OS Clever Girl in the Golden Bedroom

Upstream foundation: Dudley is built on Project Bluefin and its documentation, published with Project Bluefin Actions, and grounded in the Universal Blue and bootc ecosystems.

Choose a stream

Stable is the general daily-driver stream.

Dudley stable release card
sudo bootc switch ghcr.io/joshyorko/dudley-os:stable --enforce-container-sigpolicy

NVIDIA is the daily-driver stream for systems that need Project Bluefin's NVIDIA runtime.

Dudley nvidia release card
sudo bootc switch ghcr.io/joshyorko/dudley-os:nvidia --enforce-container-sigpolicy

Dakota is experimental. It publishes matching dakota and dakota-nvidia images for the offline installer and still requires boot, update, and rollback qualification, plus a completed installer test, before daily-driver use.

Dudley dakota release card
sudo bootc switch ghcr.io/joshyorko/dudley-os:dakota --enforce-container-sigpolicy

Daily operation

Inspect the active deployment, stage an update, and reboot into it:

bootc status
sudo bootc upgrade
sudo systemctl reboot

If the new deployment is unsuitable, apply the previous deployment:

sudo bootc rollback --apply

See the operator runbook for stream switching, VM workflows, and image verification. Project Bluefin's documentation is the source for inherited upstream behavior.

What Dudley adds

Stable and NVIDIA add the Dudley product layer while retaining their Project Bluefin bases:

  • shared DSB defaults and Dudley payload from dsb-common
  • Dudley wallpapers, runtime Brewfiles, Flatpak declarations, VS Code payload, hooks, and recipes
  • DX-style container, virtualization, and developer runtime additions
  • Google Chrome installed into the image
  • Dudley identity, metadata, validation, publishing, and local product glue

Dakota uses an allowlisted, distribution-neutral overlay. It includes both Podman and the real Docker Engine with Compose and Buildx, uses Ghostty instead of Ptyxis, and bakes native Google Chrome into the image from Google's signature-verified RPM payload without adding RPM or DNF to the final image. Run ujust dudley-dakota once to initialize only Dudley's curated Homebrew profile, install the Dudley IDE bundle (including VS Code Insiders), and remove the obsolete Podman-backed DOCKER_HOST redirect. Then run ujust dx-group and start a new login session to enable non-root Docker access. Dakota preserves the terminal and Zsh configuration supplied by its base/user setup. Run ujust dudley tools to install every formula and cask currently published by joshyorko/tools. The Fedora/RPM/DNF and libvirt host payload remain excluded.

Last updated: 2026-08-03

Architecture

Layer Responsibility
Project Bluefin Base images, desktop and userland contract, bootc integration, and shared build/publish actions
dsb-common Shared DSB defaults plus Dudley wallpapers, Brewfiles, Flatpak declarations, VS Code payload, hooks, and recipes
dudley-os Stream assembly, DX-style runtime additions, Chrome image install, final metadata, validation, publishing, and local product glue

Stable and NVIDIA are assembled in this order:

  1. Project Bluefin stream base
  2. dsb-common/shared
  3. dsb-common/dudley
  4. local dudley-os assembly

Dakota uses the same ownership boundaries but applies only its allowlisted file overlay to the Project Bluefin Dakota base. Detailed change-placement and stream-input guidance lives in Maintenance and ownership.

Build, trust, and release

Renovate pins image and action dependencies by digest. Project Bluefin Actions handles runner setup, preflight, image push, keyless signing, and GitHub provenance. Pushes to main publish Stable, NVIDIA, Dakota, and Dakota NVIDIA. CI SBOM publication is disabled.

Verify the published Stable image against this repository's GitHub Actions OIDC identity:

cosign verify \
  --certificate-identity-regexp "https://github.com/joshyorko/dudley-os/" \
  --certificate-oidc-issuer "https://token.actions.githubusercontent.com" \
  ghcr.io/joshyorko/dudley-os:stable

Local verification

Run the repository checks before opening a pull request:

npm ci
just test
npm run test:cards
npm run cards:check

Build and exercise a local VM when an image-level change needs runtime proof:

just build
just build-qcow2
just run-vm-qcow2

Build the experimental Dakota container image locally:

just build-dakota

The matching offline installer is owned by joshyorko/dudley-iso and is built there with just iso-sd-boot dudley. Dakota still requires boot, install, update, and rollback qualification before daily-driver use.

Repository map

Path Purpose
Containerfile Stable and NVIDIA final image assembly
Containerfile.dakota Experimental Dakota allowlisted overlay
build/ Build-time product assembly and validation
custom/ Dudley-only product files and ujust wiring
.github/workflows/ Stream validation and publication
tests/ Image, workflow, and documentation contracts
docs/ Operator, maintenance, and historical detail

Supporting documents:

Upstream and supporting projects

About

A step up from the closet under the stairs, but not quite the Room of Requirement yet. Dudley OS is a personalized bootc desktop that layers Dudley’s shared common configuration onto a thin finpilot-based image.

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages