Reimagining the Fedora Linux installer: Anaconda’s new Web UI

The Fedora Linux installer, Anaconda, has been around for 25 years!

While it’s been a reliable way to install Fedora Linux (and CentOS, RHEL, and others), many people — especially those new to Fedora — sometimes have issues with complexity and jargon.

We’re working on a major update for the way it looks and acts. Our new interface is designed to make installing Fedora Linux simpler and more user-friendly for everyone, especially newcomers.

Skip to the download instructions to try it out or read on to learn about the background of the changes and to see screenshots.

Why a new interface?

The Anaconda team implemented the current design of the GTK-based installer decades ago. It uses a “hub-and-spoke” design that can sometimes feel like jumping around sections when installing.

We wanted to rethink the installation process, to create a more streamlined experience where people are guided through the installation process step-by-step in a linear manner, so they don’t have to hunt for the right things to configure amid all the possible settings.

Instead of figuring out how to configure the system first, the goal should be to show you a set of applicable options, and then tailor the experience from there. The new interface was designed to be a “guided” experience with good defaults to help people install in different ways, right from the start. It lists possible options on how to install, instead of the longstanding method which requires dealing with technical details of the system to install.

Most typical installations should require not much more than clicking “next” a couple times, have a review page, and then installation. This will make installation not just easier for newcomers to Fedora, but also more streamlined for all of us who have used Fedora Linux for decades.

A task-oriented design

During the start of the project to re-imagine Anaconda, we identified a few different goals people have when they install Linux on their computer:

  1. Use the entire disk for a fresh installation: Useful for new computers, new disks, or to wipe out an existing install to start fresh.
  2. Share disk with another operating system in a dual-boot mode: Share the computer between OSes (Windows, macOS, or even another Linux distribution), in a dual-boot fashion. Fedora will be installed to free space. If there is no free space, a “reclaim” dialog can remove partitions or resize (when partition type supports resizing) to make space. Having dual booting explicitly stated is new to Anaconda, even though it has previously supported this.
  3. Reinstall Fedora (new to Web UI): Use Anaconda to re-install Fedora when there’s a problem, keeping your data with a new installation. This is a “system recovery” option, new to Anaconda.
  4. Custom partitions, using mount point assignment: Install on a pre-configured disk, either set up from a partition tool (for example: using the Cockpit Storage powered “Storage Editor” or a fully external tool such as gparted) ahead of time or re-use existing partitions from a previous installation (such as switching from another Linux distribution).

The new Web UI is designed to handle all these scenarios easily. Previously, Anaconda required some technical know-how, especially for custom installations. Now, even people unfamiliar with disk partitioning should be able to easily install Fedora, without having to refer to third-party guides or scratching their heads trying to figure out how to partition a disk.

Additionally, we’re adding more to Anaconda too: The older GTK-based Anaconda does not have an easy way to do a “recovery” reinstall which preserves data in home directories. And dual-booting with the GTK version of Anaconda is currently a bit difficult; the new Web UI version of Anaconda makes this much easier.

We’ll talk more about each method further down the page, complete with screenshots!

Changing the Anaconda experience

Anaconda has always used GTK, the “toolkit” that provides the buttons and other widgets that make up many applications and desktops on Linux. The last refresh happened over a decade ago (2013, in Fedora 18). For most of this time, Anaconda’s interface (the part of Anaconda that you see) has been tightly coupled with the backend logic. A few years ago, the Anaconda team started a major effort to modularize Anaconda, to break the code down to smaller parts, which enabled the interface to be changed independently from installation logic.

GTK 3 is still currently maintained, but it’s old and showing its age. It won’t be maintained forever. Porting to GTK 4 (and possibly GNOME’s special widget set, libadwaita) will require a lot of effort to adapt to the changes and would require a massive effort to rewrite much of the frontend, especially as Anaconda has many custom GTK widgets.

Since we’d likely have to rewrite a lot of the frontend anyway, we took another approach and have taken advantage of the modularization efforts to retool the frontend to have a web-based interface instead. The Cockpit team has been providing a web-based interface for Linux systems for managing systems for many years in the Cockpit web console, so it made sense to reuse Cockpit as a base and its web-based widget set, PatternFly, as a starting point for the next generation of Anaconda too.

By-the-way: We’re using Firefox to render the UI when you’re installing locally. (There’s no Chromium or Electron involved.)

Web-based benefits

While it’s not a native toolkit like GTK, using a web based UI does have several benefits:

  • It’s easier to update and maintain versus a traditional desktop application
  • We now use Cockpit’s testing frameworks to test Anaconda’s web UI
  • It’s easier to adapt to future changes
  • It enables more community contributions, as it “lowers the bar” for know-how, as there are many more developers familiar with web development than GTK development
  • We can extend it to interactively install a remote machine using Anaconda from another computer’s Web browser in the future

Room to grow

We have some plans to expand the storage configuration screen, to provide more than just encryption. For example, in the future we could:

  • Add support for remote installations by browser. No complicated tools or connection configuration would be required.
  • Extend small-screen support needed for VMs to have possible mobile support for remote installations. PatternFly and Cockpit both help provide some of the underpinnings to enable this work.
  • Have settings to use a different filesystem configuration, such as XFS and ext4, and a way to switch between subvolumes, logical volumes, and Stratis layouts.

We’re also planning on adding:

  • A built-in terminal for debugging purposes
  • An integrated log viewer
  • Improved light and dark mode switching
  • Improved accessibility

Details about the new storage concepts

The GTK version of Anaconda currently shows you a disk and you need to figure out what to do with it in order to install a system.

The new web UI version of Anaconda uses more of a top-down approach, where you decide how you’ll install on a system, based on the current system’s available storage.

While we already covered it above in a list, let’s dive more into details here, as this does change the way you interact with Anaconda quite a bit, as these are newer concepts when installing Fedora.

The most simplified method is to use the entire disk. This is perfect if you have a blank disk you’d like to install on, either on physical hardware or in a VM. It’s also a great choice if you don’t care about what’s currently on the disk and want to easily install Fedora.

Sharing a disk with another operating system makes it easy to install Fedora along side another operating system. It has a reclaim dialog to erase partitions or even resize supported partitions. If your partition is formatted in a filesystem type that is not supported, you’ll have to either delete partitions in the reclaim dialog or use an alternate tool, like GParted, before launching Anaconda. Windows installations are now encrypted by default with “BitLocker”, so if you’d like to share your computer’s hardware between Windows and Fedora Linux, you will first need to boot into Windows and resize partitions from within Windows itself to make space for Fedora.

If none of the above methods work for you, you’re able to select a flexible layout based on an existing layout on your disk. Linux systems have standard places to add storage called mounts. When using the mount point method, you can select partitions for each mount point, starting with the mandatory “root” partition at “/”, and continuing with the suggested “/boot/” mount point. Additional mount points can be added and assigned existing partitions as well, using free-form text for the names.

If your storage is not set up how you’d like it on the disk and if you don’t want to use one of the guided partition methods, then you can either use an external tool before installing Anaconda to set up partitions and volumes how you’d like, or you can use the “Storage Editor” from Anaconda’s top-right “global” menu on the storage page. This will launch a customized version of “Cockpit Storage” to let you adjust your storage on the fly, to prepare it for Anaconda. Please note, as pointed out in the warning dialog, that this acts directly on your system, unlike Anaconda itself, which queues everything up until you agree on the review screen.

And, if you already have Fedora installed and want to reinstall for any reason, existing Fedora installations have a “reinstall method” at the top. This lets you do a fresh installation and keep all the data in your home partition, instead of having to erase everything.

Screencast demos

We’ve also put together a few screencasts to show you what it would be like to use Anaconda.

Sharing the disk in a “dual boot” with another operating system
Reinstall Fedora, while keeping data in the /home/ partition
A more advanced look at mount point assignment, with a peek at the “Storage Editor” (which isn’t needed when using mount point assignment; it’s here to demonstrate a more detailed view at all partitions near the start of the video)

Ready to try it out?

We have a test ISO you can try out! We’d love to hear from you! Try this out on a secondary machine or in a virtual machine. Do not install this on your main computer or any machine with important information.

To try out the new Web UI installer, you can set up the test ISO on either a virtual machine or real hardware. Here’s how to do each.

Virtual machine:

  1. Download the ISO
  2. Open your virtual machine software, such as GNOME Boxes
  3. Select the ISO
  4. Boot your virtual machine

Physical test hardware:

  1. Download the ISO
  2. Download Fedora Media Writer (or use another USB stick imaging tool)
  3. Launch Fedora Media Writer and select the downloaded test ISO
  4. Insert the USB stick you’d like to overwrite with the installer
  5. Write the ISO to the USB stick (this will take a few minutes)
  6. Boot your test computer with the USB stick in a USB slot
  7. Press a key to select your boot device. This is often the <F12> or <ESC> or <Del> key, depending on manufacturer.
  8. Start your installation!

A few notes about the test image

While new Anaconda Web UI is almost ready for its debut in Fedora Linux 42, starting with the Workstation Live ISO, there are a few things to keep in mind:

  • This is the Workstation live image with the GNOME desktop.
  • This current demo is English only. Translations are in progress. There will be a language selector in release versions. Don’t worry; we have it implemented and it works, but it’s not ready for testing yet, and actual translations are being worked on too.
  • We’re still refining the text used in the installer, so words may change a little still. If something is unclear to you, we’d like to solve it.
  • We’re planning a staged rollout, first changing the Workstation installation experience, then extending Anaconda to handle other desktop installations too. After that, we will adapt it to server installations as well. So even if you do not use GNOME, testing out this ISO and providing feedback will help improve Anaconda for other uses in the future.

We’re hoping to incorporate more feedback from people trying this out, so please let us know any constructive and helpful feedback you might have! Be sure to try it out in different scenarios.

Contact us

We’re currently doing a “Test Week” (a week of “Test Days”) for the new Anaconda Web UI this week, from November 11 – 15. Read more on the blog post about the Anaconda Web UI Test Week and the detail of how Test Days work.

We’re looking forward to hearing all positive and/or constructive feedback. The forum post for the test week is a great place for you to share a comment! Thanks!

If you find a problem, report a bug at Bugzilla.

New in Fedora

26 Comments

  1. Ricardo Bánffy

    The color scheme looks very Windows-like.

    • Garrett LeSage

      Hey, thanks for the feedback!

      I exclusively use Fedora on my work and personal machines (and I think the rest of the team does too), and can assure you it has nothing to do with Windows. The color theme comes from PatternFly ( https://v5-archive.patternfly.org/design-foundations/colors ). It’s “just” a white background, (almost) black text, and a blue accent color, not completely dissimilar to most Fedora-related projects.

      That said, the blue is currently PatternFly’s blue, and not Fedora’s blue (which is somewhat based on the original Fedora blue I chose in GIMP in 2003 😅 — time flies). This mismatch has bugged me since we started the Anaconda Web UI project long ago; I opened an issue about it back then, but everything else has been higher priority so far.

      Most people probably wouldn’t actively notice the difference, but it does have a subconscious impact, and it’ll “feel better” when the blues aren’t clashing.

      I was actually just about to do some style adjustments, including fixing the blue mismatch, before we decided to work on UX polishing, a blog post, and videos instead. But it’s definitely on my list of TODO items, and it’s one of the next things I’ll work on, now that I finished writing this article and editing the videos.

      I’m glad you pointed this out, as this demonstrates that we need to prioritize it sooner rather than later. 😉

  2. Mike W

    I like the new look, seems easy enough to navigate.

  3. joao

    Loved the new layout, with consistency at the buttons.
    What I would change:
    during instalation progress bar there are the small icons for each step… I would put the movement/Spinner there on the small icons and not waste a big space above with the big spinner that is very distracting.
    5 stars for the rest! congratulations.

  4. David

    I’ve not been able to install Fedora via wifi. My other problem is I do an extreme amount of the dreaded mult-booting, which Fedora doesn’t do well with. It’s time to update the installer for the proliferation of wireless and larger, cheaper storage devices.

    • Jiří Konečný

      Hi,
      wi-fi could (and should) be connected in the Live environment directly. You should use Gnome Shell’s control center to do that. However, the Live environment installation is completely offline. It doesn’t need internet access for the installation.

      For multi-booting, we improved the GTK UI flow which didn’t guide users at all. I hope the current Web UI state is better than where we were. Of course, there is a space for improvement.

  5. Much welcome UX improvement. May I know the fonts used in the UI screenshots? I get an Inter vibe, don’t think it’s Montserrat, but not sure.

  6. Rob

    As a devops engineer I think being able to access/monitor the installation process via a webbrowser sounds fantastic.
    A web based frontend suggests that there might be an api, is that so ?
    Also, for a very long time my preffered installation method has been via pxe-booting to load a kickstart file.

    Would it be possible to get a preview of the kickstart file that is generated by this interface so that I might download it for the pxe-kickstart installation ?

    • Martin Kolman

      As with the old GTK interface (and any installation run really) Anaconda will still generate a kickstart file describing the installation & stores it on the installed system.

      So I guess the idea is that this is too late or that you would for example want to inspect the kickstart file before starting the installation ?

      I don’t think we have support for it right now, but in theory it should be possible to dump the output kickstart at any time (based on options set/changed by the user up to that point). Maybe a nice power user feature ?

  7. Adam

    Would it be possible to run a web server and use this as a remote / headless installer?

    • Garrett LeSage

      That’s definitely something we’d like to add in the future, especially when it’s time to introduce Anaconda’s Web UI for server installations!

      (We’ve talked about it a lot and have built this with remote installations in mind. The feature isn’t ready quite yet, as we’ve been prioritizing this for Fedora Workstation first, which is a subset of all required features. Other desktop spins require a few more features, and Server requires even more configuration. We have initial versions of other required pages, but we’ve been busy polishing up everything required for Fedora Workstation first.)

      • Yeah – and there are also some technical aspects for remote access – providing the user with the ip address/hostname to connect to, as well as setup credentials. Another topic is encryption/self signed certificates used for securing the connection. The Cockcpit web console had to solve similar issues, but its harder in our case as with Cockpit user will set things up once, but its all necessary again (including new certs) per every installation run. 🙂

        • Dani_L.

          That sounds a lot like the way Cobbler did (still does?) things. Just add a preview/edit of the kickstart as per a previous comment, and possibly some template magic, and you’ve recreated a new, modern, Cobbler. Personally, I’m all for it.

          • Yeah, that might be possible on the technical level – IIRC we should be able to dump to current kickstart basically at any time (basically iterate over all modules that run in the backend and ask them to generate kickstart from their current state & then combine that together).

            Re/loading kickstart could be more tricky as so far there has been the expectation it is loaded once (or not at all) during an installation run. But again, this might be something that could be changed.

            Easier interim option might be to provide a way to easily inject kickstart at startup via the Web UI – that would be probably easier to do than reloading al already running Anaconda. And combined with the dump kickstart feature, this could be a nice combo theoretically. 🙂

  8. RG

    Dual-boot mode for nvidia laptops – that’s what I’m talking about!!!

  9. Kaylie

    Very nice! Anaconda has desperately needed a UX design pass for many years at this point, hopefully this will help out new users understand what they are doing and install Fedora 🙂

  10. Hmm. This doesn’t quite look native. Is there any reason that it didn’t use the default system theme (libadwaita/GNOME HIG) and instead opted for a custom design?

    It feels weird to introduce new users with a non-native interface. Imagine if the new Windows installer chose shadcn over Mica? It would seem pretty ridiculous…

    • Scott Trakker

      Look for very good! This is a big step forward!

      One comment:
      I don’t think it’s a good idea to have the quit button next to the other two buttons, because now you’re constantly inviting the user the quit the installation which is something you obviously don’t want. The solution is simply: just move the quit button the the top right menu (with the three dots).

  11. Zbigniew Jędrzejewski-Szmek

    Overall, this looks pretty nice.

    I watched the video “Reinstall Fedora, while keeping data in the /home/ partition”. The assignment of mount points seems fairly streamlined, but on the review page, the information about btrfs subvolumes is not shown at all.

    The list looks like this:
    vda3 – mount – /home
    vda3 – mount – /movies
    vda3 – format at btrfs subvolume – /

    Pressing “continue” requires a leap of faith that /home and /movies are not going to be “formatted”. And obviously, the user cannot review if the subvolume assignments were correct. Btrfs is now the primary filesystem used by Workstation, so lack of good support for subvolumes is going to be a problem.

    It also says “Deletion of certain partitions may …: vda3 (root)”. It sounds like partitions/subvolumes and formatting/deleting are being confused.

  12. ALMOND

    I always liked Anaconda, although it wasn’t complicated for me. The new Anaconda looks different from what I’m used to. I hope it was as easy to install as before.

  13. Baptiste

    From a UX perspective, when Anaconda encounter a blank disc, it doesn’t make sense to have just one radio button. I think it would be better to just have a confirmation “Using the whole disc” and a CTA “Continue…”
    What do you think?

    Btw, there is a typo in “When using the mout point method”

  14. stampare soldi nell’hocomputers

Leave a Reply


The interval between posting a comment and its appearance will be irregular so please DO NOT resend the same post repeatedly. All comments are moderated but this site is not monitored continuously so comments will not appear as soon as posted.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

The opinions expressed on this website are those of each author, not of the author's employer or of Red Hat. Fedora Magazine aspires to publish all content under a Creative Commons license but may not be able to do so in all cases. You are responsible for ensuring that you have the necessary permission to reuse any work on this site. The Fedora logo is a trademark of Red Hat, Inc. Terms and Conditions