A custom bootc image built on Fedora Kinoite (KDE Plasma), tuned from the ground up for audio production. Caracal-OS delivers a fast, immutable Linux desktop with a lean core production stack ready on first boot, while the larger DAW, plugin, instrument, and utility catalog is handled by the bundled Caracal Software Installer.
- OGC/Bazzite kernel — replaces the stock Fedora kernel with Universal Blue's pre-built OGC kernel RPMs
- CPU governor — defaults to
performancemode throughcpupower, with a Caracal service fallback that reapplies the governor and CPU energy preference for low-latency DAWs - Realtime/memlock limits —
@audioand@realtimegroups preconfigured withrtprio 95and unlimited memlock through both PAM andsystemd - Preconfigured Wine/Yabridge compatibility for using Windows VST plugins
| DAW | Notes |
|---|---|
| Ardour 9 | Full-featured professional DAW |
| Qtractor | MIDI/audio sequencer |
| Carla | Plugin host / patchbay |
Also included in the base image:
- Hydrogen
- QjackCtl
- Yabridge, Wine TKG, and Winetricks for Windows VST workflows
Optional DAWs (install after first boot via ujust):
ujust install-reaper
ujust install-renoise
ujust install-bitwig
ujust uninstall-reaper
ujust uninstall-renoise
ujust uninstall-bitwig
For the broader optional catalog, launch the bundled Caracal Software Installer from the app launcher, or open the terminal UI with:
ujust software-installerCaracal now keeps the image smaller by preinstalling a focused plugin set and moving the larger plugin library into the Software Installer. Installer-managed plugins are installed in the user's home plugin folders where possible, so they survive image updates cleanly without rpm layering.
Included out of the box:
- LSP Plugins (
lsp-plugins-vst,lsp-plugins-clap,lsp-plugins-lv2) - Calf
- Guitarix
- Vitalium (Vital without the online stuff)
- DISTRHO DrumSynth
- DISTRHO EQuinox
- Carla LV2 integration
The Caracal Software Installer is the main way to expand the system after first boot. It provides a curated audio catalog with a desktop GUI, terminal UI, and CLI helpers, so Caracal can stay lean while still making common music-production installs easy.
It can install and uninstall software across categories, queue multiple selections in one run, detect already-installed entries, and use the right install path for the package: /opt or /usr/local for system apps when needed, and user-local plugin folders such as ~/.vst3, ~/.clap, and ~/.lv2 for plugins that do not need system integration.
Optional installs available through Caracal Software Installer include:
- DAWs: REAPER, Renoise, Bitwig Studio, Mixbus, Zrythm, Helio, Stargate
- Instruments: Cardinal, VCV Rack 2, Surge XT, Decent Sampler, SunVox, Virtual ANS, Dexed, Loopino, Odin2, OB-Xf, TAL-Noisemaker, Wavetable, Yoshimi
- Effects: Dragonfly Reverb, BYOD, Neural Amp Modeler, AIDA-X, Audio Assault plugins, ChowDSP plugins, Zam Plugin Suite, DPF plugins, TAL plugins
- Utilities: MuseScore Studio, BambooTracker, MilkyTracker, Declick, RTCQS
Windows VST support:
- Wine TKG + Yabridge — run Windows VST2/VST3 plugins natively inside Linux DAWs
If you are coming from Windows, the easiest path is:
- Start with the Caracal Software Installer.
- If what you want is not there yet, check LinuxDAW.org, which is a useful Linux plugin catalog.
- Download Linux plugin builds in formats like
VST3,CLAP, orLV2. - Copy the downloaded plugin into your home plugin folders:
~/.vst3~/.clap~/.lv2
- Re-scan plugins in your DAW or restart the DAW.
If those folders do not exist yet, you might not have run the 'ujust first-run' step. To set this up, open Ghostty and run 'ujust first-run'. On Linux, folders that start with a . are hidden by default, so in a file manager you may need to enable "Show Hidden Files" first. You can do this by pressing Ctrl+H while in the Home directory.
- JACK (
jack-audio-connection-kit,qjackctl,ffadofor FireWire interfaces) - PipeWire + ALSA bridge (
pipewire-alsa,pavucontrol) - Core audio workflow tools aimed at low-latency Linux production
- Zsh, Neovim, Ghostty, 7zip, Distrobox, Zenity
- Oh My Zsh setup through
ujust first-run - Homebrew-managed shell extras through
ujust first-run:atuin,eza,ugrep,zoxide, andbash-preexec
Caracal also publishes a heavier DX variant for development workstations. It keeps the audio-production base image and adds Docker CE, VSCodium, flatpak-builder, Cockpit, libvirt/QEMU tooling, Incus/LXC, Podman extras, tracing/profiling tools, and common VM/container helpers.
After switching to a DX image, run:
ujust dx-groupThen reboot, or log out and back in, so Docker, Incus, libvirt, and serial-device group membership applies.
You will need a flash drive with at least 8GB of space. 16GB is best.
ISO files can be downloaded from our website for both AMD/Intel and NVIDIA images.
If the download stalls or is too slow, you can use something like motrix.
You will also need something to write the ISO to the flash drive (or you can use the dd command if you are already on Linux).
For this we recommend using one of the following:
- Fedora Media Writer is the best option for Windows, Mac, and Linux.
- Rufus for Windows.
- Ventoy for Windows and Linux.
This guide assumes you are using Fedora Media Writer but it is basically the same for all the options mentioned above.
Writing to the flash drive
- Download the Image: Grab the latest early-access ISO matching your graphics hardware directly from the Caracal OS website.
- Launch the Tool: Open Fedora Media Writer.Select the File: Click on the option to Select .iso file and navigate to the Caracal ISO you just downloaded.
- Choose your USB: Insert an 8GB (or larger) USB flash drive and select it from the dropdown list.
- Write: Click Write. Note: This will erase all data currently on your USB drive. Wait for the tool to complete and verify the installation media.
Installing from the flash drive:
- Restart your PC: Leave the USB plugged in and reboot your computer.
- Open the Boot Menu: While your computer is turning on, continuously press the designated Boot Menu Key (commonly F12, F11, F8, or Esc, depending on your motherboard).
- Select USB: Use the arrow keys to highlight your USB flash drive and press Enter.
- Test: You will be greeted by the GRUB boot menu. Select the option to test or launch the Live Environment.
Navigating the installer:
- Launch Installer: Once loaded into the Live Environment, look for the installer shortcut (often titled Install to Hard Drive).
- Configure Settings: Follow the on-screen prompts to select your language, keyboard layout, and time zone.
- Partitioning: Navigate to the Installation Destination screen. Choose your primary hard drive. If you want a fresh system, select Automatic Partitioning and choose to Erase the entire disk.Begin Installation: Click Begin Installation. The system will take a few minutes to copy the Caracal image to your drive.
- Restart: Once it finishes, restart your computer, remove the USB flash drive when prompted, and boot into your fresh Caracal OS system.
When you boot in for the first time, the Caracal Setup app will appear. Make sure you have a working internet connection and select 'Run' to configure your system.
- A machine running any bootc-compatible image (Bazzite, Bluefin, Aurora, or plain Fedora Atomic)
- A GitHub account (to pull the published image from GHCR)
sudo bootc switch ghcr.io/caracal-dev/caracal:latestFor NVIDIA systems using Turing or newer GPUs, switch to the NVIDIA image instead:
sudo bootc switch ghcr.io/caracal-dev/caracal-nvidia:latestFor the Developer Experience image:
sudo bootc switch ghcr.io/caracal-dev/caracal-dx:latestFor the NVIDIA Developer Experience image:
sudo bootc switch ghcr.io/caracal-dev/caracal-dx-nvidia:latestFor stage rigs that should boot to a stripped-down console-first Carla session:
sudo bootc switch ghcr.io/caracal-dev/caracal-stage:latestReboot to apply. On first login, run the guided setup:
ujust first-runOn the main image that recipe adds you to the audio and realtime groups, installs the shell extras, and sets up yabridge. On caracal-stage, it runs a smaller stage setup for the audio/realtime groups, Wine/Yabridge, and local plugin folders.
Or do the group step manually:
sudo usermod -aG audio,realtime $USERThen reboot, or at minimum log out and back in, so the new group membership and session limits take effect.
Caracal ships pre-built kernel modules (NVIDIA, audio drivers, etc.) that are signed with the ublue-os/akmods Machine Owner Key (MOK). If Secure Boot is enabled in your UEFI firmware, the modules will fail to load until you enroll the public key:
On the first boot after installing or rebasing to Caracal, run:
mokutil --import /etc/pki/akmods/certs/akmods-ublue.derThe MOK enrollment password is universalblue (hardcoded across all
uBlue images). Reboot — the MOK Manager EFI application will appear. Select
Enroll MOK, then Continue, enter universalblue when prompted, and
reboot again.
If you get a black screen or the MOK manager does not appear automatically
after mokutil, tap Enter repeatedly during the reboot to catch the shim
bootloader prompt.
To verify the key was enrolled successfully after rebooting:
mokutil --list-enrolled | grep -q ublue && echo "Key enrolled" || echo "Key not found"Requires just and Podman.
# Build the container image
just build
# Build the stage performance image
just build-stage
# Build the Developer Experience image
just build-dx
# Build the NVIDIA Developer Experience image
just build-dx-nvidia
# Build a bootable QCOW2 (for testing in a VM)
just build-qcow2
# Run in a VM
just run-vm-qcow2See the Justfile for all available recipes.
Contributions are welcome and strongly encouraged.
Caracal is trying to cover a wide surface area: audio production workflows, realtime tuning, plugin compatibility, desktop integration, bootc/Fedora Atomic image building, and hardware-specific behavior across laptops, desktops, audio interfaces, GPUs, MIDI devices, and controllers. That is too much for one person to validate alone, so more contributors directly improves the project.
If you use Caracal and find a bug, regression, packaging issue, compatibility problem, or workflow rough edge, please open an issue. If you already know the fix, open a pull request.
Helpful contribution areas include:
- Testing on different hardware: laptops, desktops, AMD/NVIDIA/Intel graphics, USB audio interfaces, MIDI controllers, and unusual audio chipsets
- Verifying DAW and plugin compatibility across Ardour, Carla, Qtractor, REAPER, Renoise, Bitwig, Wine, and yabridge
- Improving the base image, installer, branding, first-run flow, and desktop integration
- Fixing packaging and build issues in the image, installer scripts, and
ujustrecipes - Improving documentation for setup, troubleshooting, plugin paths, hardware quirks, and known-good workflows
Suggested contribution flow:
- Fork the repo and create a branch for your change.
- Build locally with
just build, or usejust build-qcow2if you want to test in a VM. - Make the smallest focused change you can.
- Include clear reproduction steps, hardware details, logs, or screenshots when reporting or fixing a bug.
- Open a pull request with a concise summary of what changed and how you tested it.
When filing compatibility reports, the most useful details are:
- Hardware model and CPU/GPU
- Audio interface or MIDI device
- Whether the issue is on bare metal or in a VM
- What DAW, plugin, or workflow was involved
- Exact steps to reproduce
- Relevant logs, terminal output, or screenshots
Even small contributions help. A tested fix, a better doc note, a hardware report, or a reproducible bug report all reduce the amount of guesswork and make Caracal more reliable for everyone.
If you hit a bug, open a GitHub issue.
For bug reports, please include:
- What happened
- What you expected to happen
- Exact steps to reproduce it
- Your hardware model, CPU, GPU, and audio interface
- Whether the issue is on bare metal or in a VM
- Which DAW, plugin, or device was involved
- Logs, screenshots, or terminal output if you have them
If you want a new feature, improvement, or package added, open a feature request and explain:
- The workflow or problem you are trying to solve
- Who the change helps
- What you want Caracal to do differently
- Whether there is an existing Linux package, plugin, or project we should integrate
- Any tradeoffs, risks, or compatibility concerns you already know about
All published images are signed with cosign. Verify with:
cosign verify --key cosign.pub ghcr.io/caracal-dev/caracal:latest- Fedora Kinoite — KDE Plasma on Fedora Atomic
- Universal Blue image-template
- Universal Blue akmods
- Fedora Kinoite - The base this image is built on
- Universal Blue - for making this type of project possible
- Bazzite - for the many performance enhancements
- Aurora - for the system-scope Flathub + Bazaar preinstall setup
- Secureblue - for some security improvement ideas
- Zirconium - excellent learning source
- Zena for providing an example of CachyOS kernel implementation