12 Commits
Author SHA1 Message Date
ckochandClaude Opus 5 4739fb5e0d Add an unattended-install ISO builder
Boot the stick, pick one GRUB entry, walk away: it wipes the target disk, installs Ubuntu
26.04.1 with the NVIDIA driver and codecs, and runs setup.sh on first boot to install the
apps. build-iso.sh does the image surgery in a container, so the build machine needs nothing
but podman.

The wipe is pinned to one disk serial (the 990 PRO). The Data drive can't match it, and an
unmatched disk stops the install rather than guessing — so the stick can't eat another
machine either. The autoinstall entry is not the GRUB default, so an accidental boot lands in
the ordinary Ubuntu installer.

Verified by running the install in a VM with two virtual NVMe drives carrying the real
serials: unattended start to finish, target partitioned and installed, Data disk byte-for-byte
identical, and late-commands left /opt/main-desktop plus the enabled first-boot service in
place. Testing caught the autoinstall args landing after '---' (where they reach the installed
system instead of the installer, and do nothing), and the first-boot run adding root rather
than ckoch to the docker group, since runuser leaves $USER alone.

setup.sh gains an unattended mode for that first-boot run, waits out the dpkg lock that
Ubuntu's own boot-time upgrades hold, waits for snapd to finish seeding before removing the
Firefox snap, and skips the driver step on machines with no NVIDIA card.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-24 10:01:09 -04:00
ckochandClaude Opus 5 8b26c5d693 Drop the backup and restore scripts: setup.sh only
Files and app logins move across by hand, so archiving and unpacking a home
directory isn't this repo's job any more. setup.sh installs the machine and
stops there.

Two things restore.sh used to cover, kept where they still matter: the
post-reboot `sudo flatpak update` that fetches the NVIDIA GL runtime (Flatpak
can only match it to a loaded driver, so it can't happen during setup), and the
notes on which dotfiles not to copy over from Fedora. The server-marvin mount is
now optional — press Enter at the prompt to skip it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-23 16:01:01 -04:00
ckochandClaude Opus 5 a4156dd79d Keep git credentials in the GNOME keyring
Bazzite answered git's password prompts from KDE Wallet via ksshaskpass, which
Ubuntu won't have. Build git's libsecret helper (Ubuntu ships it as source only)
and point credential.helper at it, falling back to a week-long credential cache
if the build isn't possible. Note in the README that the first Gitea push has to
re-enter the password, since keyrings aren't in the backup.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-23 15:54:31 -04:00
ckochandClaude Opus 5 1ddc56800a Move to Ubuntu 26.04 LTS: backup, setup and restore scripts
Replaces the Bazzite/BlueBuild image with plain Ubuntu. apt covers the system
and dev tools, Flathub the desktop apps, and three scripts do the rest:
backup.sh archives this machine's home to server-marvin and reads it back to
verify it; setup.sh builds a fresh 26.04 install (NVIDIA 595-open, Docker with
GPU access, Steam/Lutris, 27 Flatpaks, VS Code, Claude desktop, the Data drive
and marvin mounts); restore.sh unpacks the backup without the Fedora/KDE parts
that would fight Ubuntu.

The app list comes from a scan of the running machine. The 15 Flatpaks left
behind sit commented at the bottom of flatpaks.txt, and their data still rides
along in the backup. No Node or .NET on the host by choice — LudosData and
landingPage build in Docker.

Drops the BlueBuild recipe, the cosign key and the old dev-setup script. The
Bazzite setup stays in this history.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-23 15:48:47 -04:00
ckochandClaude Fable 5 cf3fc8bb79 Drop OpenSCAD (DVDPhotoMatic finished)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-30 09:54:44 -04:00
ckochandClaude Fable 5 5ea3384880 Dev toolchain scan: DEVELOPMENT.md, dev-setup.sh, OpenSCAD + Android Studio flatpaks
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-30 09:45:37 -04:00
ckochandClaude Fable 5 73d92a6e7d Add Prism Launcher + Spotify flatpaks; AnythingLLM README note (no Flathub pkg)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-29 17:12:10 -04:00
ckochandClaude Fable 5 2d392f9d69 Build-it-yourself model: bluebuild switch, no published image, drop CI workflow
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-29 14:11:09 -04:00
ckochandClaude Fable 5 7f0a30c01f Local build path: pinned alt-tags, manual-only workflow, README build docs
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-29 13:25:52 -04:00
ckochandClaude Fable 5 a54cb8df30 Move to Gitea: Gitea Actions workflow (BlueBuild CLI), registry git.lazypugs.com
bluebuild / Build Custom Image (push) Has been cancelled
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-29 12:29:48 -04:00
ckochandClaude Fable 5 0562266a7e Add cosign public key
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-29 12:10:07 -04:00
ckochandClaude Fable 5 5d46070561 Custom Bazzite DX NVIDIA (open) image: BlueBuild recipe, GHCR workflow, cosign setup
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-29 12:05:12 -04:00