Fedora AutoEnv Setup is a streamlined, configuration-driven tool to automate the setup of a Fedora environment. It simplifies the installation of packages, configuration of system settings, and setup of development tools through a single, easy-to-use script.
- 🚀 Simplified Installation: A single command to start the entire setup process.
- ⚙️ Configuration-Driven: Easily customize your setup by modifying the
packages.jsonfile. No need to dig through scripts. - 🤖 Automated Processes: Handles DNF configuration, RPM Fusion setup, package installation (DNF and Flatpak), Nerd Fonts, and more.
- 🖱️ Interactive and Optional Sections: Confirm major installation steps like GNOME configuration and NVIDIA driver installation.
- 🧹 Clean and Organized: A minimal set of files makes it easy to understand and maintain.
- 📝 Robust Logging: All operations are logged to
fedora_autoenv_setup.logfor easy debugging.
- 🖥️ A fresh installation of Fedora Workstation.
- 🌐 An active internet connection.
- 🔒 You must run the script with
sudo.
- Clone the repository:
git clone https://github.com/your-username/Fedora-AutoEnv-Setup.git cd Fedora-AutoEnv-Setup
Here is a brief overview of the packages.json structure, which is organized by phases:
phase1_system_preparation: Essential system packages and configurations.phase2_basic_configuration: Core development tools, fonts, and terminal applications likeghosttyandfish.phase3_gnome_configuration: GNOME-specific packages, extensions, and settings.phase5_additional_packages: Optional user applications from various sources.
Each phase section can contain:
dnf_packages: A list of DNF packages to install.flatpak_apps: A dictionary of Flatpak application IDs and their descriptions.- Other phase-specific keys, such as
dnf_swap_ffmpegornerd_fonts_to_install.
{
"phase1_system_preparation": {
"dnf_packages": [
"dnf5",
"flatpak"
]
},
"phase2_basic_configuration": {
"dnf_packages": [
"git",
"curl",
"ghostty",
"fish"
],
"flatpak_apps": {
"com.github.tchx84.Flatseal": "Flatseal"
}
}
}Contributions are welcome! If you have ideas for improvements or new features, feel free to open an issue or submit a pull request.
This project is licensed under the MIT License. For details, see the LICENSE file.
