Declarative Fedora Configuration Manager
ReproFed is a declarative configuration manager designed specifically for Fedora Linux. It allows you to define system profiles using simple YAML files and apply them reproducibly across installations and Fedora releases.
The goal of ReproFed is to make Fedora systems predictable, reproducible, and easy to manage.
- Declarative Configuration: Define your desired system state in simple YAML profiles.
- Reproducibility: Replicate your exact setup across reinstalls and upgrades.
- Version-Aware: Profiles respect Fedora versioning for safe and explicit upgrades.
- Modular Design: Core actions are modular and extensible.
- Fedora-Native CLI: Familiar command-line interface designed for the Fedora ecosystem.
ReproFed shifts the system management paradigm from manual tweaks to a desired-state model. Instead of manually running individual commands to install packages or change settings, you follow a simple workflow:
- Define: Choose or create a YAML profile.
- Apply: Use the ReproFed CLI to set the profile.
- Sync: ReproFed automatically brings the system into the state declared in the profile.
ReproFed officially supports and maintains the following system profiles:
- gnome – Fedora Workstation with GNOME desktop
- kde – Fedora KDE Plasma desktop
- cosmic – Fedora with the COSMIC desktop environment
- server – Minimal Fedora Server configuration
These profiles are part of the core ReproFed repository and are tested and supported by the project.
Additional profiles may exist in the community ecosystem ReproFed-Profiles but are not considered officially supported unless explicitly listed here.
# List available profiles
reprofed --profile list
# View details of a specific profile
reprofed --profile info gnome
# Get current system profile
reprofed --profile get
# Apply a new profile
reprofed --profile set gnome# Manage the ReproFed systemd service
reprofed --service [status|enable|disable]
# Manage automatic system updates
reprofed --updates [status|enable|disable]# View system logs
reprofed --log
# General help and versioning
reprofed --version
reprofed --helpTip: Short options are supported (e.g.,
reprofed -p set gnomeorreprofed -s status).
Note: ReproFed is currently intended for advanced users and early adopters.
# Clone the repository
git clone https://github.com/ephmo/reprofed.git
cd reprofed
# Run the installer
chmod +x install.sh
sudo ./install.sh --install- Update:
sudo ./install.sh --update - Uninstall:
sudo ./install.sh --remove
Contributions, ideas, and feedback are welcome!
You may open issues or submit pull requests for:
- Bug fixes
- CLI improvements
- Documentation
- Core logic and infrastructure
The core ReproFed repository only maintains officially supported profiles (gnome, kde, cosmic, server).
➡️ New profile contributions must be submitted to the community repository:
🔗 https://github.com/ephmo/reprofed-profiles
This separation keeps the core project stable while allowing the community to freely experiment, extend, and share additional profiles.
If you are unsure where your contribution belongs, feel free to open an issue for guidance.
This project is licensed under the MIT License. See the LICENSE file for details.
ReproFed — Your Fedora, reproducible by design.