Skip to content

Repository files navigation

Codacy Badgebuild_image badgebuild iso badgeAsk DeepWiki

Caracal OS

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.


What's Inside

Performance

  • OGC/Bazzite kernel — replaces the stock Fedora kernel with Universal Blue's pre-built OGC kernel RPMs
  • CPU governor — defaults to performance mode through cpupower, with a Caracal service fallback that reapplies the governor and CPU energy preference for low-latency DAWs
  • Realtime/memlock limits@audio and @realtime groups preconfigured with rtprio 95 and unlimited memlock through both PAM and systemd
  • Preconfigured Wine/Yabridge compatibility for using Windows VST plugins

Core DAWs (included)

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-installer

Plugins & Instruments

Caracal 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

Caracal Software Installer

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

Getting More Plugins

If you are coming from Windows, the easiest path is:

  1. Start with the Caracal Software Installer.
  2. If what you want is not there yet, check LinuxDAW.org, which is a useful Linux plugin catalog.
  3. Download Linux plugin builds in formats like VST3, CLAP, or LV2.
  4. Copy the downloaded plugin into your home plugin folders:
    • ~/.vst3
    • ~/.clap
    • ~/.lv2
  5. 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.

Audio Stack

  • JACK (jack-audio-connection-kit, qjackctl, ffado for FireWire interfaces)
  • PipeWire + ALSA bridge (pipewire-alsa, pavucontrol)
  • Core audio workflow tools aimed at low-latency Linux production

Shell & Tooling

  • 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, and bash-preexec

Developer Experience Image

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-group

Then reboot, or log out and back in, so Docker, Incus, libvirt, and serial-device group membership applies.


Installation

Prerequisites

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:

Installation Steps

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.

Post-installation

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.

Rebasing from bootc-compatible image

Prerequisites

  • A machine running any bootc-compatible image (Bazzite, Bluefin, Aurora, or plain Fedora Atomic)
  • A GitHub account (to pull the published image from GHCR)

Switch to Caracal-OS

sudo bootc switch ghcr.io/caracal-dev/caracal:latest

For NVIDIA systems using Turing or newer GPUs, switch to the NVIDIA image instead:

sudo bootc switch ghcr.io/caracal-dev/caracal-nvidia:latest

For the Developer Experience image:

sudo bootc switch ghcr.io/caracal-dev/caracal-dx:latest

For the NVIDIA Developer Experience image:

sudo bootc switch ghcr.io/caracal-dev/caracal-dx-nvidia:latest

For stage rigs that should boot to a stripped-down console-first Carla session:

sudo bootc switch ghcr.io/caracal-dev/caracal-stage:latest

Reboot to apply. On first login, run the guided setup:

ujust first-run

On 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 $USER

Then reboot, or at minimum log out and back in, so the new group membership and session limits take effect.

Secure Boot

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.der

The 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"

Once enrolled, the key persists across Caracal image updates.

Building Locally

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-qcow2

See the Justfile for all available recipes.


Contributing

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 ujust recipes
  • Improving documentation for setup, troubleshooting, plugin paths, hardware quirks, and known-good workflows

Suggested contribution flow:

  1. Fork the repo and create a branch for your change.
  2. Build locally with just build, or use just build-qcow2 if you want to test in a VM.
  3. Make the smallest focused change you can.
  4. Include clear reproduction steps, hardware details, logs, or screenshots when reporting or fixing a bug.
  5. 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.


Bug Reports & Feature Requests

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

Image Verification

All published images are signed with cosign. Verify with:

cosign verify --key cosign.pub ghcr.io/caracal-dev/caracal:latest

Based On

Special Thanks to:

  • 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

About

Caracal makes music production and sound engineering on Linux easy and stable.

Topics

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages