Custom Bluefin / Aurora image with 1Password, Homebrew, Incus, Ghostty, and YubiKey support.
Built using the finpilot pattern. Available in GNOME (Bluefin), GNOME + NVIDIA, and KDE Plasma (Aurora) variants.
# GNOME (Bluefin)
sudo bootc switch ghcr.io/allardvdb/rocinante
# GNOME + NVIDIA
sudo bootc switch ghcr.io/allardvdb/rocinante-nvidia
# KDE Plasma (Aurora)
sudo bootc switch ghcr.io/allardvdb/rocinante-auroraImages are published in three release streams:
| Stream | Tag | Purpose |
|---|---|---|
stable |
:stable |
Daily drivers — manually promoted via GitHub Release |
testing |
:testing |
Pre-release soak — promoted via GitHub pre-release |
latest |
:latest |
Bleeding edge — every push to main and daily cron |
Each stream also has date-pinned tags (e.g., :stable.20260311) for rollback.
ujust switch-streamOr manually:
sudo bootc switch ghcr.io/allardvdb/rocinante:stable --enforce-container-sigpolicyghcr.io/allardvdb/rocinante:stable
ghcr.io/allardvdb/rocinante-nvidia:stable
ghcr.io/allardvdb/rocinante-aurora:stable
Replace :stable with :testing or :latest as needed.
ujust first-runIndividual recipes:
ujust switch-stream— Switch between stable/testing/latest release streamsujust setup-1password-browser— Flatpak browser integrationujust setup-yubikey-ssh— YubiKey SSH authenticationujust enable-yubikey-gpg— Prepare shell for GPG operations with YubiKey 5ujust toggle-suspend— Disable suspend for remote accessujust setup-gpu-passthrough— IOMMU + Incus GPU passthroughujust configure-yubikey-pam— YubiKey PAM authenticationujust setup-borgmatic— Borgmatic backups to BorgBaseujust set-default-terminal-ghostty— Make Ghostty the default terminal + deploy OSC 52 clipboard config
| Software | Notes |
|---|---|
| 1Password | Desktop + CLI + Flatpak browser integration |
| Homebrew | Via @ublue-os/brew (auto-setup and update timers) |
| Ghostty | GPU-accelerated terminal with OSC 52 (remote clipboard over SSH for zellij/Codespaces); ujust set-default-terminal-ghostty |
| Incus | VM/container manager with QEMU, SPICE, OVMF, VFIO |
| virt-viewer | SPICE client for incus console --type=vga |
| ROCm | AMD GPU compute stack |
| nvidia-container-toolkit | NVIDIA variant only |
| Custom ujust recipes | YubiKey, 1Password, GPU passthrough, borgmatic, and more |
.
├── build/ # Numbered build scripts (run during image build)
│ ├── 10-build.sh # Main orchestrator
│ ├── 20-1password.sh # 1Password installation
│ ├── 30-incus.sh # Incus + QEMU/SPICE/VFIO
│ ├── 40-rocm.sh # AMD ROCm compute stack
│ ├── 50-ghostty.sh # Ghostty terminal (COPR) + OSC 52 config
│ └── copr-helpers.sh # COPR helper functions
├── custom/ # Custom files copied into the image
│ ├── brew/ # Brewfiles for Homebrew packages
│ │ └── default.Brewfile
│ ├── ghostty/ # Ghostty skeleton config (→ /etc/skel)
│ │ └── config
│ └── ujust/ # Custom ujust recipes (→ 60-custom.just)
│ └── rocinante.just
├── Containerfile # Container build definition (ctx-stage pattern)
└── .github/workflows/ # CI: build, validate, clean
just build # Build image (default: rocinante)
just build rocinante-aurora # Build Aurora (KDE) variant
just build-iso # Create GNOME installer ISO
just build-iso-nvidia # Create GNOME + NVIDIA installer ISO- Universal Blue
- Bluefin
- finpilot — upstream template