Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/geraldohomero/post-install-fedora
A comprehensive automation script for setting up a fresh Fedora 41 installation with essential software, configurations, and development tools.
https://github.com/geraldohomero/post-install-fedora
bash-script fedora fedora-41 fedora-workstation linux post-installation shell-script
Last synced: 8 days ago
JSON representation
A comprehensive automation script for setting up a fresh Fedora 41 installation with essential software, configurations, and development tools.
- Host: GitHub
- URL: https://github.com/geraldohomero/post-install-fedora
- Owner: geraldohomero
- License: mit
- Created: 2024-12-29T16:34:39.000Z (17 days ago)
- Default Branch: main
- Last Pushed: 2025-01-06T17:33:36.000Z (9 days ago)
- Last Synced: 2025-01-06T18:45:18.762Z (9 days ago)
- Topics: bash-script, fedora, fedora-41, fedora-workstation, linux, post-installation, shell-script
- Language: Shell
- Homepage:
- Size: 44.9 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Fedora Post-Installation Script
A comprehensive automation script for setting up a fresh Fedora 41 installation with essential software, configurations, and development tools.
>Note: The script was designed for Fedora Workstation, but it may also work on other Fedora-based distributions. However, please be cautious and ensure compatibility before running it on other systems.
>Important: While the script aims to automate setup tasks, it's essential to review the code and understand what it does before running it on your machine. Ensure that you back up critical data before proceeding. The script provided is for educational purposes and comes with no warranty or support.
[Pop!_OS (22.04) - Post Install](https://github.com/geraldohomero/post-install-pop-os)
## Features
- 🔄 System Updates and Optimization
- 📦 Essential Software Installation (DNF & Flatpak)
- 🗂️ Enable RPM Fusion repositories
- 🛠️ Development Environment Setup
- 🔧 Custom Aliases Configuration
- 🔐 GitHub Integration
- 🎮 Gaming and Multimedia Support
- 🎯 Android Development Setup## Directory Structure
```bash
post-install-fedora/
├── src/
│ ├── alias.sh # Custom shell aliases configuration
│ ├── devEnv.sh # Development environment setup
│ ├── dnf-config.sh # DNF package manager optimization
│ ├── githubCloneAndConfig.sh # GitHub repository setup
│ ├── homeScript.sh # Home directory utilities setup for `misc`
│ └── post-install.sh # Main installation script
├── misc/
│ ├── update.sh # System update utility
│ ├── syncthingStatus.sh # Syncthing status checker
│ └── swapAudio.sh # Audio channel swap utility
└── run.sh # Main execution script
```## Script Descriptions
### Main Scripts
1. **run.sh**
- Entry point for the installation process
- Orchestrates the execution of all other scripts
- Handles initial setup and permissions2. **post-install.sh**
- Manages software installation
- Configures RPM Fusion repositories
- Installs DNF and Flatpak packages
- Sets up Android SDK environment### Utility Scripts
3. **alias.sh**
- Configures custom shell aliases
- Creates and manages `.bash_aliases` file
- Integrates with `.bashrc`4. **dnf-config.sh**
- Optimizes DNF package manager settings
- Improves download speeds and package management
- Creates backup of original configuration5. **devEnv.sh**
- Sets up development tools
- Installs Node.js, NVM, and other dev packages6. **githubCloneAndConfig.sh**
- Configures GitHub CLI
- Clones user repositories
- Sets up Git global configuration### Miscellaneous Utilities
7. **misc/update.sh**
- System update utility
- Handles DNF and Flatpak updates
- Performs system cleanup8. **misc/syncthingStatus.sh**
- Checks Syncthing service status9. **misc/swapAudio.sh**
- Utility for swapping audio channels## Customizing Aliases
The script includes several predefined aliases that you can customize. To modify them, edit the `CUSTOM_ALIASES` array in `src/alias.sh`:
```bash
CUSTOM_ALIASES=(
'alias ips="ip -c -br a"'
'alias his="history|grep"'
'alias ports="netstat -tulanp"'
# Add your custom aliases here
)
```
Common included aliases:
- `update`, `upd`, `up`: Run system updates `misc/update.sh`
- `ips`: Show IP addresses
- `his`: Search command history
- `ports`: Show network ports
- `swap`: Switch audio output
- `syncstatus`: Check Syncthing status `misc/syncThingStatus.sh`## Customizing Package Installation
To modify which packages are installed, edit the arrays in `src/post-install.sh`:
1. DNF Packages:
```bash
PROGRAMS_TO_INSTALL_DNF=(
btop
vim
# Add/remove packages here
)
```2. Flatpak Packages:
```bash
PROGRAMS_TO_INSTALL_FLATPAK=(
org.qbittorrent.qBittorrent
# Add/remove packages here
)
```## Usage
1. Clone the repository:
```bash
git clone https://github.com/geraldohomero/post-install-fedora.git
```2. Make the script executable:
```bash
chmod +x run.sh
```3. Run the script:
```bash
sudo ./run.sh
```## Prerequisites
- Fresh Fedora installation
- Internet connection
- Sudo privileges## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.