Skip to content

About

No description, website, or topics provided.

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

Fedora Installer

A modular, comprehensive Fedora workstation setup tool written in Go. Can be used as a standalone CLI tool or imported as a library in other Go projects.

Features

  • 🚀 DNF optimization and system configuration
  • 📦 Repository setup (RPM Fusion, COPR, third-party repos)
  • 🛠️ Development tools (Rust, Go, Git configuration)
  • 💻 Application installation (Slack, Zoom, Cursor, etc.)
  • 🎨 Font installation (Material Symbols, Inter, etc.)
  • 🎬 Media driver optimization (Intel, NVIDIA)
  • 📝 Modular design - install only what you need

Quick Start

Standalone CLI

# Install everything
curl -fsSL https://raw.githubusercontent.com/Purian23/fedora-installer/main/install.sh | sh

# Or build from source
git clone https://github.com/Purian23/fedora-installer
cd fedora-installer
make install

Usage

# Install all components
fedora-setup install --all

# Install specific components
fedora-setup install --system      # DNF optimization, journald config
fedora-setup install --repos       # Repository setup
fedora-setup install --devtools    # Rust, Go, Git
fedora-setup install --apps        # Slack, Zoom, Cursor
fedora-setup install --media       # Driver swaps
fedora-setup install --fonts       # Custom fonts

# Check status
fedora-setup status

# List available components
fedora-setup list

Use as Go Library

import (
    "context"
    "github.com/Purian23/fedora-installer/installer"
)

func main() {
    ctx := context.Background()
    
    // Optimize DNF configuration
    if err := installer.OptimizeDNF(ctx); err != nil {
        panic(err)
    }
    
    // Setup RPM Fusion repositories
    if err := installer.SetupRPMFusion(ctx); err != nil {
        panic(err)
    }
    
    // Install development tools
    opts := installer.DevToolsOptions{
        InstallRust: true,
        InstallGo:   true,
        GitUser:     "your-name",
        GitEmail:    "your-email@example.com",
    }
    if err := installer.InstallDevTools(ctx, opts); err != nil {
        panic(err)
    }
}

Supported Fedora Versions

  • Fedora 39+
  • Fedora Workstation
  • Fedora Silverblue (limited support)
  • Nobara
  • Fedora Asahi Remix

Components

System Optimization

  • DNF configuration (parallel downloads, fastest mirror)
  • Journald size limits
  • System package upgrades

Repository Setup

  • RPM Fusion (Free & Non-Free)
  • COPR repositories
  • VS Code repository
  • Third-party repositories

Development Tools

  • Rust toolchain (rustup)
  • Go compiler
  • Git configuration
  • Build essentials

Applications

  • Slack (auto-download latest RPM)
  • Zoom (auto-download latest RPM)
  • Cursor (auto-download latest RPM)
  • VS Code
  • Chrome/Chromium

Fonts

  • Material Symbols (Variable font)
  • Inter (Variable font)
  • Fira Code
  • JetBrains Mono
  • Font Awesome

Media Drivers

  • Intel media driver optimization
  • NVIDIA drivers (optional)
  • FFmpeg with hardware acceleration
  • VA-API support

Development

# Build CLI
make build

# Run tests
make test

# Install locally
make install

# Clean build artifacts
make clean

License

MIT License - see LICENSE file for details

Contributing

Contributions welcome! Please see CONTRIBUTING.md for guidelines.

About

No description, website, or topics provided.

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages