A minimal Fedora Silverblue custom image template. Only 600+ lines bash and a Containerfile.
- Fork this repository
- GitHub Actions will automatically build and push images to
ghcr.io/YOUR_USERNAME/YOUR_REPO_NAME - Images are built on:
- Every push to
mainbranch - Every pull request
- Daily at 10:05 UTC
- Manual workflow dispatch
- Every push to
- Disk artifact builds, including ISO builds, use
ghcr.io/YOUR_USERNAME/YOUR_REPO_NAME:latest. Run the container image workflow first, and make sure the GHCR image exists before starting a disk artifact workflow.
Available tags:
latest- Latest build from main branchsha-<commit>- Specific commit builds
# Build container image
./astralforge build
# Build disk images. Run ./astralforge build first so the target image exists locally.
./astralforge build-qcow2 # QCOW2 format
./astralforge build-raw # RAW format
./astralforge build-iso # ISO formatTo make an installed system track a GHCR image instead of a local image, build the ISO with ASTRALFORGE_IMAGE set to the GHCR reference:
ASTRALFORGE_IMAGE=ghcr.io/YOUR_USERNAME/YOUR_REPO_NAME:latest ./astralforge build-isoISO builds created by GitHub Actions already use ghcr.io/YOUR_USERNAME/YOUR_REPO_NAME:latest, so installed systems will track that image for future bootc upgrade runs. You usually do not need a Kickstart %post script to run bootc switch.
This repository includes iso.toml, a default installer configuration tuned for GNOME images.
ASTRALFORGE_IMAGE=ghcr.io/YOUR_USERNAME/YOUR_REPO_NAME:latest \
ASTRALFORGE_BUILD_CONFIG=iso.toml \
./astralforge build-isoEdit build_files/build.sh to customize your image:
# Install packages
dnf5 install -y vim
# Enable services
systemctl enable podman.socketCopy astralforge.env.example to .astralforge.env and modify as needed.
Defaults to quay.io/fedora/fedora-silverblue:44. Change in Containerfile.