https://github.com/knowoneactual/fedora-dev-setup
A reproducible guide for setting up Fedora as a professional Python development environment, emphasizing consistency across machines through a modular and idempotent architecture.
https://github.com/knowoneactual/fedora-dev-setup
developer-tools fedora setup
Last synced: 21 days ago
JSON representation
A reproducible guide for setting up Fedora as a professional Python development environment, emphasizing consistency across machines through a modular and idempotent architecture.
- Host: GitHub
- URL: https://github.com/knowoneactual/fedora-dev-setup
- Owner: KnowOneActual
- License: other
- Created: 2025-12-21T00:37:38.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2025-12-24T17:10:59.000Z (about 1 month ago)
- Last Synced: 2025-12-25T11:17:12.962Z (about 1 month ago)
- Topics: developer-tools, fedora, setup
- Language: Shell
- Homepage:
- Size: 174 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Roadmap: ROADMAP.md
Awesome Lists containing this project
README
# π Fedora Development Workstation Setup




**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.
---
## β¨ Features
### π‘οΈ Security First
* **Automated Auditing**: Integrated **Lynis** security scanning.
* **Hardening Report**: Generates a system hardening index and detailed log report after every install.
### π§ Hardware Intelligence
* **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).
### π οΈ The Dev Stack
* **Python Powerhouse**: Sets up `uv` (blazing fast installer) and `pipx` for 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.
### π» Visual & UX Polish
* **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.
---
## π Quick Start
### 1. Installation
Clone the repo and run the bootstrap script.
```bash
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
```
### 2. CLI Options (Non-Interactive)
For CI/CD or power users who prefer flags:
```bash
# Run full installation
sudo ./bootstrap-fedora.sh --install
# Validate existing setup
./bootstrap-fedora.sh --validate
# Dry Run (Safe Preview)
./bootstrap-fedora.sh --dry-run
```
---
## πΎ Backup & Restore System
Moving to a new machine? Take your environment with you.
### Export Configuration
Creates a timestamped `.tar.gz` containing your package lists, VSCodium extensions, and dotfiles (`.bashrc`, `.zshrc`, etc.).
```bash
./scripts/export-config.sh
# Output: ~/fedora-backups/fedora_dev_backup_YYYYMMDD_HHMMSS.tar.gz
```
### Restore Configuration
Re-hydrates a fresh system from a backup file. Safe to runβit backs up existing files before overwriting.
```bash
./scripts/restore-config.sh
```
---
## π Project Structure
```text
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
```
---
## π€ Contributing
Found a bug? Want to add support for a new tool? PRs are welcome!
Please check [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
1. Fork the repo.
2. Create your feature branch (`git checkout -b feature/amazing-feature`).
3. Commit your changes.
4. Open a Pull Request.
---
**License**: MIT
**Author**: KnowOneActual