Bazzite makes gaming and everyday use smoother and simpler across desktop PCs, handhelds, tablets, and home theater PCs.
9,061
stars
8,156
commits
Just
primary language
Sep 11, 2026
updated
Please see our website for a newcomer-friendly explanation of Bazzite. This readme will cover everything in-depth.
Bazzite is a custom Fedora Atomic image built with cloud native technology that brings the best of Linux gaming to all of your devices - including your favorite handheld.
Bazzite is built from ublue-os/main using Fedora technology, which means expanded hardware support and built in drivers are included. Additionally, Bazzite adds the following features:
bees service for reducing the disk space used by wine prefix contents.ujust restore-input-remapper)ujust install-openrazer in a terminal to begin using it.ujust install-opentabletdriver in a terminal.Common variant available as bazzite, suitable for desktop computers.
[!IMPORTANT] ISOs can be downloaded from our website, and a helpful install guide can be found here.
Rebase from an existing upstream Fedora Atomic to this image if you want Open Source GPU Drivers: (Please note: Mesa's Open Source option for NVIDIA GPUs, NVK is still prone to errors at the time of writing, for any issues relating to NVK please submit a report with Mesa, not Ublue/Bazzite)
rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/bazzite:stable
or for devices with Nvidia GPUs wanting the NVIDIA Proprietary Drivers:
rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/bazzite-nvidia:stable
For users with Secure Boot enabled: Follow our secure boot documentation prior to rebasing.
Variant designed for usage as an alternative to SteamOS on the Steam Deck, and for a console-like experience on HTPCs, available as bazzite-deck:
bees greatly trims the size of compatdata.rpm-ostree's rollback functionality. You can even select previous images at boot.duperemove process.ryzenadj.service and /etc/default/ryzenadj.CUSTOM_REFRESH_RATES=30-68 to /etc/environment. Minimum and maximum refresh rates differ per handheld!ujust disable-bios-updates and ujust disable-firmware-updates in the terminal. These are automatically disabled on non-Deck hardware, and on Decks with DeckHD displays or 32GB RAM mods.[!IMPORTANT] ISOs can be downloaded from our website, and a helpful install guide can be found here.
Rebase from an existing upstream Fedora Atomic to this image:
rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/bazzite-deck:stable
Please refer to our Handheld Wiki for required setting changes and Decky Loader plugins for Steam Gaming Mode on your specific Handheld.
Builds with the GNOME desktop environment are available in both desktop and deck flavors. These builds come with the following additional features:
[!IMPORTANT] ISOs can be downloaded from our website, and a helpful install guide can be found here.
Rebase from an existing upstream Fedora Atomic to this image:
rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/bazzite-gnome:stable
To rebase an existing ostree system to a Desktop Environment with the Proprietary NVIDIA Drivers release:
rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/bazzite-gnome-nvidia:stable
To rebase an existing ostree system to the Steam Deck/HTPC release:
rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/bazzite-deck-gnome:stable
For users with Secure Boot enabled: Follow our secure boot documentation prior to rebasing.
ujust commands for convenience.Bazzite started as a project to resolve some of the issues that plague SteamOS, mainly out of date packages (despite an Arch base) and the lack of a functional package manager.
Despite this project also being image-based, you are able to install any Fedora package straight from the command line. These packages will persist across updates (So go ahead and install that obscure VPN software you spent an hour trying to get working in SteamOS). Additionally, Bazzite is updated multiple times a week with packages from upstream Fedora, giving you the best possible performance and latest features - all on a stable base.
Bazzite ships with the latest Linux kernel and SELinux enabled by default with full support for secure boot (Run ujust enroll-secure-boot-key and enter the password universalblue if prompted to enroll our key) and disk encryption, making this a sensible solution for general computing. (Yes, you can print from Bazzite)
Read the FAQ for details on what makes Bazzite stand out from other Linux based operating systems.

View additional documentation surrounding the project.
These images are signed with sigstore'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/ublue-os/bazzite
[!WARNING] Steam Deck Users: The Steam Deck does not come with secure boot enabled and does not ship with any keys enrolled by default. Do not enable this unless you absolutely know what you're doing.
Secure boot is supported with our custom key. The pub key can be found in the root of this repository here. If you'd like to enroll this key prior to installation or rebase, download the key and run the following:
sudo mokutil --timeout -1
sudo mokutil --import secure_boot.der
For users already on a Universal Blue image, you may instead run ujust enroll-secure-boot-key.
If asked for a password, use universalblue.
Bazzite is a community effort and wouldn't exist without everyone's support. Below are some of the people who've helped us along the way:
Bazzite is built entirely via GitHub Actions. Creating your own custom version of it is as easy as forking this repository, adding a private signing key, and enabling the fork's GitHub Actions. Running the Build Bazzite workflow will then generate custom images for all variants of Bazzite.
If you only want to generate images for the variants of Bazzite you are using, edit .github/workflows/build.yml to comment out the variants you do not wish to build in the push-ghcr job's strategy's matrix list.
We also ship a config for the popular pull app if you'd like to keep your fork in sync with upstream. Enable this app on your repo to keep track of Bazzite changes while also making your own modifications.
cosign generate-key-pair). This key pair must have no signature.cosign.pub file in your public repo with the one you generated - you and your users will need it to check the signatures.cosign.key file) as a Repository Secret in the fork's settings page, in the Settings -> Secrets and variables -> Actions menu. Name the secret SIGNING_SECRET.You can find us on the Bazzite Discord View the archive of support threads without an account.
Just
40.8%
Shell
34.4%
YAML
12.8%
Dockerfile
7.2%
JSON
2.4%
Python
1.3%
Bazzite makes gaming and everyday use smoother and simpler across desktop PCs, handhelds, tablets, and home theater PCs.
9,061
stars
8,156
commits
Just
primary language
Sep 11, 2026
updated
Please see our website for a newcomer-friendly explanation of Bazzite. This readme will cover everything in-depth.
Bazzite is a custom Fedora Atomic image built with cloud native technology that brings the best of Linux gaming to all of your devices - including your favorite handheld.
Bazzite is built from ublue-os/main using Fedora technology, which means expanded hardware support and built in drivers are included. Additionally, Bazzite adds the following features:
bees service for reducing the disk space used by wine prefix contents.ujust restore-input-remapper)ujust install-openrazer in a terminal to begin using it.ujust install-opentabletdriver in a terminal.Common variant available as bazzite, suitable for desktop computers.
[!IMPORTANT] ISOs can be downloaded from our website, and a helpful install guide can be found here.
Rebase from an existing upstream Fedora Atomic to this image if you want Open Source GPU Drivers: (Please note: Mesa's Open Source option for NVIDIA GPUs, NVK is still prone to errors at the time of writing, for any issues relating to NVK please submit a report with Mesa, not Ublue/Bazzite)
rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/bazzite:stable
or for devices with Nvidia GPUs wanting the NVIDIA Proprietary Drivers:
rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/bazzite-nvidia:stable
For users with Secure Boot enabled: Follow our secure boot documentation prior to rebasing.
Variant designed for usage as an alternative to SteamOS on the Steam Deck, and for a console-like experience on HTPCs, available as bazzite-deck:
bees greatly trims the size of compatdata.rpm-ostree's rollback functionality. You can even select previous images at boot.duperemove process.ryzenadj.service and /etc/default/ryzenadj.CUSTOM_REFRESH_RATES=30-68 to /etc/environment. Minimum and maximum refresh rates differ per handheld!ujust disable-bios-updates and ujust disable-firmware-updates in the terminal. These are automatically disabled on non-Deck hardware, and on Decks with DeckHD displays or 32GB RAM mods.[!IMPORTANT] ISOs can be downloaded from our website, and a helpful install guide can be found here.
Rebase from an existing upstream Fedora Atomic to this image:
rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/bazzite-deck:stable
Please refer to our Handheld Wiki for required setting changes and Decky Loader plugins for Steam Gaming Mode on your specific Handheld.
Builds with the GNOME desktop environment are available in both desktop and deck flavors. These builds come with the following additional features:
[!IMPORTANT] ISOs can be downloaded from our website, and a helpful install guide can be found here.
Rebase from an existing upstream Fedora Atomic to this image:
rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/bazzite-gnome:stable
To rebase an existing ostree system to a Desktop Environment with the Proprietary NVIDIA Drivers release:
rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/bazzite-gnome-nvidia:stable
To rebase an existing ostree system to the Steam Deck/HTPC release:
rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/bazzite-deck-gnome:stable
For users with Secure Boot enabled: Follow our secure boot documentation prior to rebasing.
ujust commands for convenience.Bazzite started as a project to resolve some of the issues that plague SteamOS, mainly out of date packages (despite an Arch base) and the lack of a functional package manager.
Despite this project also being image-based, you are able to install any Fedora package straight from the command line. These packages will persist across updates (So go ahead and install that obscure VPN software you spent an hour trying to get working in SteamOS). Additionally, Bazzite is updated multiple times a week with packages from upstream Fedora, giving you the best possible performance and latest features - all on a stable base.
Bazzite ships with the latest Linux kernel and SELinux enabled by default with full support for secure boot (Run ujust enroll-secure-boot-key and enter the password universalblue if prompted to enroll our key) and disk encryption, making this a sensible solution for general computing. (Yes, you can print from Bazzite)
Read the FAQ for details on what makes Bazzite stand out from other Linux based operating systems.

View additional documentation surrounding the project.
These images are signed with sigstore'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/ublue-os/bazzite
[!WARNING] Steam Deck Users: The Steam Deck does not come with secure boot enabled and does not ship with any keys enrolled by default. Do not enable this unless you absolutely know what you're doing.
Secure boot is supported with our custom key. The pub key can be found in the root of this repository here. If you'd like to enroll this key prior to installation or rebase, download the key and run the following:
sudo mokutil --timeout -1
sudo mokutil --import secure_boot.der
For users already on a Universal Blue image, you may instead run ujust enroll-secure-boot-key.
If asked for a password, use universalblue.
Bazzite is a community effort and wouldn't exist without everyone's support. Below are some of the people who've helped us along the way:
Bazzite is built entirely via GitHub Actions. Creating your own custom version of it is as easy as forking this repository, adding a private signing key, and enabling the fork's GitHub Actions. Running the Build Bazzite workflow will then generate custom images for all variants of Bazzite.
If you only want to generate images for the variants of Bazzite you are using, edit .github/workflows/build.yml to comment out the variants you do not wish to build in the push-ghcr job's strategy's matrix list.
We also ship a config for the popular pull app if you'd like to keep your fork in sync with upstream. Enable this app on your repo to keep track of Bazzite changes while also making your own modifications.
cosign generate-key-pair). This key pair must have no signature.cosign.pub file in your public repo with the one you generated - you and your users will need it to check the signatures.cosign.key file) as a Repository Secret in the fork's settings page, in the Settings -> Secrets and variables -> Actions menu. Name the secret SIGNING_SECRET.You can find us on the Bazzite Discord View the archive of support threads without an account.
(top 30 of 189)
Just
40.8%
Shell
34.4%
YAML
12.8%
Dockerfile
7.2%
JSON
2.4%
Python
1.3%