Mirror repo of "The Initial Setup utility takes care of post-installation configuration of an installed system."
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Martin Kolman 084118e2a3 Fixup version in setup.py 5 months ago
.fmf Add TMT configuration to get Anaconda COPR build 2 years ago
data Remove the default_help_pages configuration option 1 year ago
initial_setup New version 0.3.95 5 months ago
plans Add TMT configuration to get Anaconda COPR build 2 years ago
po New version 0.3.95 5 months ago
scripts Add the configuration files to the updates image 1 year ago
systemd Use getty-pre.target to prevent getty from running 5 years ago
tests Add TMT configuration to get Anaconda COPR build 2 years ago
.gitignore Use `make test` to run TMT tests locally 2 years ago
.packit.yml Add copr builds also for branched Fedora 2 years ago
.pep8speaks.yml Add PEP8 Speaks configuration 2 years ago
COPYING Fix some rpmlint warnings 7 years ago
MANIFEST.in Add missing branch config to manifest file 3 years ago
Makefile Add support for custom Anaconda COPR repository 2 years ago
README.rst Add documentation for the new test solution 2 years ago
branch-config.mk Use translation repository to pull the translations 3 years ago
initial-setup.spec New version 0.3.95 5 months ago
setup.py Fixup version in setup.py 5 months ago


Initial Setup

Build status

Translation status

Initial Setup is an application that can run during the first start of a newly installed computer and makes it possible to configure the computer according to the needs of the user.

As most of the configuration options are already present during the OS installation in Anaconda, Initial Setup mainly hosts options that need to be presented during the first start, such as displaying the EULA on RHEL. Initial Setup is also often used to create a user account, as many systems are often automatically installed with kickstart and the user is only expected to create their own user account once the newly installed machine is started for the first time.

Still, while Initial Setup normally does not have many options available, if the firstboot --reconfig kickstart command is provided in the installation kickstart, Initial Setup will show all configuration options available. This is usually used for OEM OS installations, where an OEM installs the computer, which is then shipped to the end user which uses Initial Setup for the final configuration of the operating system.


Initial Setup is basically just a thin wrapper for running spokes from Anaconda. Still, it has its own Hub, one spoke (the EULA spoke) and a translation domain ("initial-setup").

As with Anaconda, Initial Setup has both a GUI and TUI version and the package is split into a core and GUI & TUI sub packages.

As Initial Setup needs to run during the early boot, it is started by a systemd unit configured to start before the normal login screen.

On RHEL7 Initial Setup is by default followed by the legacy Firstboot utility, which at the moment does not have any plugins by default and should thus terminate immediately. If the given OS instance uses the Gnome 3 desktop environment, Firstboot is followed by the Gnome Initial Setup(GIS), which enables the user to customize their computer even more.

On RHEL8 Firstboot is no longer available and thus Initial Setup is followed by Gnome Initial Setup on RHEL Workstation installs and directly with the login screen elsewhere.

On Fedora Initial Setup is followed directly by GIS, provided Gnome 3 is installed.

  • RHEL8: IS -> [GIS]
  • RHEL7: IS -> Firstboot -> [GIS]
  • Fedora: IS -> [GIS]


Like Anaconda, also Initial Setup can be used to host third party addons - flexible yet powerful modules that can configure the system based on data in kickstart while presenting a nice UI to the user. Addons can have a GUI, TUI or can be headless, working only with data in their kickstart section or from other sources.

For comprehensive documentation about Anaconda/Intial Setup see the "Anaconda Addon Development Guide" by Vratislav Podzimek:


To start tests please first install package tmt-all to your system and call:

make test

First time you call the above it will setup all dependencies and then execute the tests. If you need to do the initialization of the tests again, please run:

make test-cleanup

In case you want to use custom Anaconda code, please provide a COPR repository with the Anaconda (can be easily created by packit copr-build in the Anaconda branch) and execute:

make test TMT_COPR_ANACONDA_REPO=<owner/anaconda>

Please note, you need to call make test-cleanup first to re-initialize test environment with your custom Anaconda code.