A starting point for creating your own customized Ostree Native Container image.
This is a starting point Fedora Silverblue image designed to be customized to whatever you want, have GitHub build it for you, and then host it for you. You then just tell your computer to boot off of that image. GitHub keeps 90 days worth image backups for you, thanks Microsoft!
Check out the spec for Fedora for more information and proper explanation.
You can use any other native container image as a base for your custom image. Check out the uBlue images list to decide what to use!
The Github actions and methods are meant to be shared and improved upon, so come on in and help out!
See the documentation on how to clone and use this repo for your own projects.
You can customize this image to your needs by adding packages to install in the recipe.yml
, configuration files in the etc
or usr
folders or doing any custom commands you want to in the Containerfile
.
Warning This is an experimental feature and should not be used in production, try it in a VM for a while! If you are rebasing and not doing a clean install do a
touch ~/.config/ublue/firstboot-done
to keep your flatpak configuration untouched BEFORE you rebase, otherwise we're going to mangle it (for science).
Note In the commands below, make sure to replace
ublue-os/startingpoint
with the details of your own repository.
To rebase an existing Silverblue/Kinoite installation to the latest build:
rpm-ostree rebase ostree-unverified-registry:ghcr.io/bpbeatty/workstation:latest
This repository builds date tags as well, so if you want to rebase to a particular day's build:
rpm-ostree rebase ostree-unverified-registry:ghcr.io/bpbeatty/workstation:20221217
The latest
tag will automatically point to the latest build. Note that when a new version of Fedora is released that the latest
tag will get updated to that latest release automatically.
The just
task runner is included in main for further customization after first boot.
The firstboot script copies the justfile from /etc/justfile
to your home directory.
After that run the following commands:
just
- Show all tasks, more will be added in the futurejust bios
- Reboot into the system bios (Useful for dualbooting)just changelogs
- Show the changelogs of the pending update- Set up distroboxes for the following images:
just distrobox-boxkit
just distrobox-debian
just distrobox-opensuse
just distrobox-ubuntu
just setup-flatpaks
- Install all of the flatpaks declared in recipe.ymljust setup-gaming
- Install Steam, Heroic Game Launcher, OBS Studio, Discord, Boatswain, Bottles, and ProtonUp-Qt. MangoHud is installed and enabled by default, hit right Shift-F12 to togglejust update
- Update rpm-ostree, flatpaks, and distroboxes in one command
Check the just website for tips on modifying and adding your own recipes.
These images are signed with sisgstore's cosign. You can verify the signature by downloading the cosign.pub
key from this repo and running the following command:
cosign verify --key cosign.pub ghcr.io/bpbeatty/base
If you're forking this repo you should read the docs on keeping secrets in github. You need to generate a new keypair with cosign. The public key can be in your public repo (your users need it to check the signatures), and you can paste the private key in Settings -> Secrets -> Actions.