Turn a fresh Fedora installation into a battle-ready development workstation in minutes.
This automated provisioning suite transforms a stock Fedora OS into a professional environment. It intelligently detects your hardware, installs a modern multi-language stack, hardens system security, and configures a power-user shell.
- Automated Auditing: Integrated Lynis security scanning.
- Hardening Report: Generates a system hardening index and detailed log report after every install.
- GPU Auto-Detection: Automatically identifies NVIDIA or AMD GPUs and installs the correct drivers (CUDA/ROCm).
- Chassis Optimization: Detects if you are on a Laptop (installs TLP/Battery savers) or Desktop (enables Performance governors).
- Python Powerhouse: Sets up
uv(blazing fast installer) andpipxfor isolated tools (ruff,black,mypy). - Polyglot Ready: Installs complete toolchains for Node.js, Go, and Rust (via rustup).
- IDE Pre-Configured: Installs VSCodium with a curated list of extensions and sane defaults.
- Interactive Menu: No need to memorize flags—just run the script and choose your path.
- Font Perfection: Installs JetBrains Mono Nerd Fonts automatically, ensuring terminal icons look perfect.
- Zsh Configured: Installs Oh My Zsh with syntax highlighting and autosuggestions out of the box.
Clone the repo and run the bootstrap script.
git clone https://github.com/KnowOneActual/fedora-dev-setup.git
cd fedora-dev-setup
# Launches the interactive menu. You will need to 'sudo' to install.
./bootstrap-fedora.sh
For CI/CD or power users who prefer flags:
# Run full installation
sudo ./bootstrap-fedora.sh --install
# Validate existing setup
./bootstrap-fedora.sh --validate
# Dry Run (Safe Preview)
./bootstrap-fedora.sh --dry-run
Moving to a new machine? Take your environment with you.
Creates a timestamped .tar.gz containing your package lists, VSCodium extensions, and dotfiles (.bashrc, .zshrc, etc.).
./scripts/export-config.sh
# Output: ~/fedora-backups/fedora_dev_backup_YYYYMMDD_HHMMSS.tar.gz
Re-hydrates a fresh system from a backup file. Safe to run—it backs up existing files before overwriting.
./scripts/restore-config.sh <path_to_backup.tar.gz>
fedora-dev-setup/
├── bootstrap-fedora.sh # Main Entry Point (Interactive)
├── scripts/
│ ├── 00-system-base.sh # Core (DNF, Git, Repos)
│ ├── 10-python-dev.sh # Python (uv, pipx)
│ ├── 20-vscodium.sh # IDE Setup
│ ├── 25-setup-zsh.sh # Shell Configuration
│ ├── 30-gpu-setup.sh # Hardware Drivers
│ ├── 31-hardware-opt.sh # Power Management
│ ├── 40-languages.sh # Node, Go, Rust
│ ├── 45-containers.sh # Docker/Podman
│ ├── 50-desktop-apps.sh # GUI Apps/Fonts
│ ├── 60-security.sh # Security Audit (Lynis)
│ ├── 99-validate.sh # Verification Suite
│ ├── export-config.sh # Backup Tool
│ └── restore-config.sh # Restore Tool
└── docs/ # Architecture Specs
Found a bug? Want to add support for a new tool? PRs are welcome! Please check CONTRIBUTING.md for guidelines.
- Fork the repo.
- Create your feature branch (
git checkout -b feature/amazing-feature). - Commit your changes.
- Open a Pull Request.
License: MIT Author: KnowOneActual