2025-12-23 21:11:11 +02:00
# Deinonyxus [](https://github.com/randogoth/deinonyxus/actions/workflows/build.yml)
2025-11-22 09:35:03 +02:00
2025-12-30 11:08:13 +02:00
*Deinonyxus* is a personal spin of the UBlue Bluefin DX image with the 🍦[Lix ](https://lix.systems/ ) flavored Nix package manager baked in and a first-login bootstrap for simple declarative package management using [curator ](https://codeberg.org/randogoth/curator ).
2025-11-22 09:35:03 +02:00
2026-01-14 18:19:46 +02:00
The Nix store is seeded into `/usr/share/nix-store` in the image and bind-mounted from `/var/lib/nix-store` to `/nix` on boot to avoid overlay stacking limits on composefs/ostree.
2025-12-30 17:32:08 +02:00
2025-12-23 20:35:57 +02:00
## What’ s inside
- Base: `ghcr.io/ublue-os/bluefin-dx:latest` without Cockpit, Docker, Firefox, VS Code
2025-12-30 11:08:13 +02:00
- Lix: multi-user install baked in with persistence at `/var/home/nix` ; `nix-daemon.service` enabled.
(D) - First-login bootstrap: installs Lix/nix packages `devbox` , `mc` , and `micro` via `curator`
2025-12-28 19:16:42 +02:00
- System packages added: `syncthing` , `uv` , `vscodium` , `waydroid` ;
2025-12-30 12:56:58 +02:00
- System flatpaks added: Telegram Desktop, Zen Browser
2025-11-22 09:35:03 +02:00
2025-12-30 16:19:24 +02:00
## First login
2025-12-23 20:35:57 +02:00
- Triggers for each non-root user on their first session.
2025-12-24 13:13:07 +02:00
- Writes state to `~/.local/state/deinonyxus/curator-init.done` ; delete it to rerun.
2025-12-24 13:15:43 +02:00
- Bootstraps `~/.config/curator/inventory.toml` and runs `curator switch` with the packages set above.
2025-11-22 09:35:03 +02:00
2025-12-30 16:19:24 +02:00
## Just Recipes
- `upgrade-nix` : upgrades to the latest version of Lix via the user profile. Replaces `nix upgrade-nix` which does not work with an immutable lowerdir `/nix/store` folder
- `install-nix-software-center` : installs a graphical app store for Nix packages
2025-12-23 20:35:57 +02:00
## Install / Rebase
2025-11-22 09:35:03 +02:00
2025-12-23 20:35:57 +02:00
```bash
# First pull unsigned to get signing policy
2025-12-23 21:11:11 +02:00
rpm-ostree rebase ostree-unverified-registry:ghcr.io/randogoth/deinonyxus:latest
2025-12-23 20:35:57 +02:00
systemctl reboot
2025-11-22 09:35:03 +02:00
2025-12-23 20:35:57 +02:00
# Then move to the signed image
2025-12-23 21:11:11 +02:00
rpm-ostree rebase ostree-image-signed:docker://ghcr.io/randogoth/deinonyxus:latest
2025-12-23 20:35:57 +02:00
systemctl reboot
```
2025-11-22 09:35:03 +02:00
2025-12-23 20:35:57 +02:00
The `latest` tag always tracks the latest build for the Fedora base set in `recipes/recipe.yml` .
2025-11-22 09:35:03 +02:00
2025-12-23 20:35:57 +02:00
## Building locally
```bash
2025-12-30 16:19:24 +02:00
bluebuild build
2025-12-23 20:35:57 +02:00
```
2025-11-22 09:35:03 +02:00
2025-12-23 20:35:57 +02:00
## Signature verification
Images are signed with Sigstore/cosign. Verify with the repo's `cosign.pub` :
2025-11-22 09:35:03 +02:00
```bash
2025-12-23 21:11:11 +02:00
cosign verify --key cosign.pub ghcr.io/randogoth/deinonyxus
2025-12-30 11:08:13 +02:00
```