This template supports Nix out-of-the-box, enabling declarative package management alongside traditional RPMs and containerized services.
Method | Use Cases | Benefits |
---|---|---|
Base Image RPMs | Essential system-level components that need tight integration with the OS (eg. Kernel updates, drivers, systemd) | Stability, system integration, trusted updates |
Nix Packages | Developer tools, CLI utilities, ad-hoc installs | Reproducibility, isolation, immediate rollback |
Podman Containers | Services with persistent runtime environments (eg. web services) | Sandboxing, portability, runtime consistency |
TL;DR You do you I see nix as supplementing bootc. Want to try a tool without including it in the base image? Use nix shell. Want to permanently add it to the image? Declare it in an install script.
I spent too long thinking about this. Ultimately, I wanted something that just worked without the extra fuss. While I love NixOS and its declarative model, it’s still ironing out some rough edges—especially around sd-boot's boot counting and automatic rollback. Until that stabilizes, it doesn't quite provide the level of self-healing I’m looking for.
Also, I find the idea of bootable containers to be really interesting. If you’re already using containers for services, it allows you to take that knowledge further. It gives you the NixOS level declarative model without needing to necessarily understand the Nix language.
The provided Justfile includes commands and aliases to streamline building and testing:
just build Builds your custom container image just build-iso Generates a bootable ISO from your OCI image just run-vm-qcow2 Boots a VM from a QCOW2 image just spawn-vm Launches a VM using systemd-vmspawn
bootc discussion forums
Use the provided artifacthub-repo.yml to index your custom image on ArtifactHub. Benefits include:
Discoverability for others building on similar foundations
Community visibility and collaboration
A place to show off your README and reach your audience
Explore real-world bootc-based images:
m2Giles' OS
bOS
Homer
Amy OS
VeneOS
🚀 Next Steps Start customizing your image by editing:
Containerfile: Add RPMs, files, layers, etc.
GitHub workflows: Automate builds, ISO creation, and signing
Leverage Nix, Podman, and RPM strategically to build secure, reproducible, and efficient systems