How to Set Custom Container Image Reference as Default in Custom Bazzite ISO?

Hi everyone,

I’m working on a personalized fork of Bazzite and want to provide a localized update experience for users in regions where GHCR is slow or inaccessible. My main goal is to have all updates (via ujust update / rpm-ostree) come from my container registry (for example, an Alibaba Cloud registry), not from GHCR.

What I’ve done so far:

  • Successfully customized and built a new ISO based on my fork.
  • Edited build_files/image-info to set IMAGE_REF to my own registry URL.
  • Confirmed that after installing from my custom ISO, /usr/share/ublue-os/image-info.json correctly shows my registry as the image-ref.
The problem:

Even though /usr/share/ublue-os/image-info.json has the correct image-ref, the system still pulls updates from the original GHCR container image after installation. Running ujust update or checking with rpm-ostree status shows that the deployment’s container reference is still GHCR, not my custom registry.

What I want:

I want users who install my custom ISO to have their system’s default update source (the rpm-ostree container reference) already set to my custom registry, without needing to run a manual rpm-ostree rebase after installation. In other words, I want the “default” update image to be my registry, baked into the ISO and deployment metadata.

Questions:

  • Which step in the build process determines the actual rpm-ostree container image reference that gets shipped in the ISO?
  • How can I ensure that my custom image reference is what rpm-ostree uses by default after installation?
  • Is there a recommended way to inject this, or a script or config file I should patch during image/container build?
Any advice or pointers to relevant docs/scripts would be greatly appreciated!

Thanks in advance for your help!
Was this page helpful?