- Shell 67.7%
- Just 28.6%
- Python 3.7%
|
|
||
|---|---|---|
| iso_files | ||
| .gitignore | ||
| .pre-commit-config.yaml | ||
| .woodpecker.yml | ||
| Justfile | ||
| LICENSE | ||
| README.md | ||
BlossomOS ISO Builder
This repository builds bootable BlossomOS installation media using Titanoboa and the Anaconda installer with WebUI.
Overview
BlossomOS ISO Builder creates installation media for BlossomOS, a beautiful KDE Plasma desktop built on Fedora Kinoite. These ISOs provide a live environment with the Anaconda WebUI installer for easy installation.
Features
- Live Environment: Boots into a fully functional BlossomOS desktop
- Anaconda WebUI Installer: Modern web-based installation experience
- Multiple Flavors: Support for standard and NVIDIA Open variants
- Pre-configured: Optimized BTRFS partitioning, secure boot support, flatpak integration
- Test & Production Pipeline: ISOs are built to test bucket, then promoted to production
- Manual Promotion: Controlled release process with dry-run capability
Download
Pre-built ISOs are available at blossomos.org.
Repository Structure
.
├── iso_files/
│ ├── configure_iso_anaconda-webui.sh # ISO configuration script
│ └── scope_installer.png # Installer branding
├── .pre-commit-config.yaml # Pre-commit hooks
├── Justfile # Build automation recipes
└── README.md # This file
The flatpak list for the live environment is fetched directly from the image repo at build time.
Building ISOs
Prerequisites
ISOs are built using CI, but you can validate your changes locally:
# Install Just command runner
curl --proto '=https' --tlsv1.2 -sSf https://just.systems/install.sh | bash -s -- --to ~/.local/bin
export PATH="$HOME/.local/bin:$PATH"
# Install pre-commit
pip install pre-commit
pre-commit install
Validation
# Check all syntax and formatting
pre-commit run --all-files
# Validate Justfile syntax
just check
# Test ISO configuration script
just test-iso-config
# Auto-fix formatting issues
just fix
Available Just Recipes
# List all available recipes
just --list
# Clean build artifacts
just clean
# Generate flatpak list from the image repo
just generate-flatpak-list
# Get image name for specific combination
just image_name blossomos stable main
# Validate image/tag/flavor combination
just validate blossomos stable nvidia-open
ISO Variants
Flavors
- main: Standard BlossomOS ISO with open-source drivers
- nvidia-open: BlossomOS ISO with NVIDIA Open kernel modules
Versions
- stable: Latest stable Fedora release (recommended)
- latest: Current Fedora release (in-development packages)
Configuration
ISO Customization
The ISO is customized via iso_files/configure_iso_anaconda-webui.sh:
- Installs Anaconda WebUI installer
- Configures BlossomOS-specific Anaconda profile
- Sets up BTRFS partitioning with zstd compression
- Adds installer to KDE panel and kickoff menu
- Configures secure boot key enrollment
- Pre-installs flatpaks (fetched from the image repo's
packages.flatpakat build time)
Anaconda Profile
The custom BlossomOS profile includes:
- Storage: BTRFS with zstd:1 compression
- Partitioning:
/(1 GiB min, 70 GiB max)/home(500 MiB min, 50 GiB free)/var(BTRFS)
- Network: First wired connection auto-enabled
- Bootloader: Fedora EFI directory, auto-hide menu
Secure Boot
Secure boot is supported by default. After installation, users are prompted to enroll the secure boot key with password: universalblue
Contributing
Contributions are welcome! Please follow these guidelines:
Before Committing
- Run validation:
just check && pre-commit run --all-files - Test ISO script syntax:
just test-iso-config - Use conventional commits
- Keep changes minimal and focused
Common Changes
- Branding: Update images in
iso_files/ - Anaconda config: Edit profile in
configure_iso_anaconda-webui.sh - Flatpak lists: Modify
build_files/base/packages.flatpakin the image repo - Partitioning: Modify
default_partitioningin the Anaconda profile
Documentation
- BlossomOS Documentation
- BlossomOS Community
- Titanoboa — ISO builder tool
- Image Repository — OCI image source
Resources
License
Apache-2.0