This repository is dedicated to building bootable Aurora ISOs using Titanoboa and the Anaconda installer with WebUI.
Aurora ISO Builder creates installation media for Aurora, a delightful KDE desktop experience built on Universal Blue. These ISOs provide a live environment with the Anaconda WebUI installer for easy installation of Aurora.
- Live Environment: Boots into a fully functional Aurora 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
- Monthly Builds: Automatically built ISOs on the first of each month
- CloudFlare Distribution: Stable ISOs automatically uploaded for public access
Pre-built ISOs are available at getaurora.dev.
.
├── .github/
│ └── workflows/
│ ├── reusable-build-iso-anaconda-webui.yml # Main ISO build workflow
│ └── validate-just.yml # Justfile validation
├── iso_files/
│ ├── configure_iso_anaconda-webui.sh # ISO configuration script
│ └── scope_installer.png # Installer branding
├── .pre-commit-config.yaml # Pre-commit hooks
├── AGENTS.md # AI agent documentation
├── Justfile # Build automation recipes
└── README.md # This file
ISOs are built using GitHub Actions, 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 installBefore submitting changes, validate your code:
# 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# List all available recipes
just --list
# Clean build artifacts
just clean
# Clone common repository (flatpak lists)
just clone-common
# Generate flatpak list from common repo
just generate-flatpak-list
# Get image name for specific combination
just image_name aurora stable main
# Validate image/tag/flavor combination
just validate aurora stable nvidia-open- main: Standard Aurora ISO with open-source drivers
- nvidia-open: Aurora ISO with NVIDIA Open kernel modules
- stable: Latest stable Fedora release (recommended)
- latest: Current Fedora release
The ISO is customized via iso_files/configure_iso_anaconda-webui.sh:
- Installs Anaconda WebUI installer
- Configures Aurora-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 (dynamically generated from Brewfiles)
The custom Aurora 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 is supported by default. After installation, users are prompted to enroll the secure boot key with password: universalblue
- Pull Requests: Builds ISOs for testing (uploads to GitHub artifacts)
- Workflow Dispatch: Manual triggering
- Schedule: First day of each month at 2:00 AM UTC
The workflow builds ISOs for:
- Platform: amd64
- Flavors: main, nvidia-open
- Version: stable
- Maximize build space (removes unnecessary software)
- Checkout repository
- Validate Just syntax
- Format image reference
- Generate flatpak list dynamically from Brewfiles in common repo
- Build ISO with Titanoboa
- Generate checksums
- Upload to artifacts (PR) or CloudFlare R2 (stable release)
Contributions are welcome! Please follow these guidelines:
- 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
- Fork the repository
- Create a feature branch
- Make your changes
- Run validation locally
- Submit a pull request
- Wait for ISO build to complete in GitHub Actions
- Test the generated ISO if needed
- Branding: Update images in
iso_files/ - Anaconda config: Edit profile in
configure_iso_anaconda-webui.sh - Flatpak lists: Modify Brewfiles in get-aurora-dev/common repository
- Partitioning: Modify
default_partitioningin Anaconda profile - Live environment: Add/remove packages in configuration script
- Workflow: Update
.github/workflows/reusable-build-iso-anaconda-webui.yml
- Aurora Documentation
- Universal Blue Docs
- AGENTS.md - Comprehensive guide for AI-assisted development
- Titanoboa - ISO builder tool
Apache-2.0
- Built on Universal Blue infrastructure
- Uses Titanoboa for ISO creation
- Based on Fedora Kinoite
- Powered by the ublue-os community