This repo builds the bootable Leenium ISO.
Its job is to produce the install image, not to define the full desktop payload. The actual system layer lives in the companion installer repo at github.com/leenium/installer, which this repo fetches or mounts during the build.
Leenium is a fork of Omarchy.
The Leenium ISO packages:
- the ArchISO build configuration
- Leenium boot and installer assets
- the logic to pull in a specific installer repo/ref
- release helpers for booting, signing, and uploading finished ISOs
The resulting ISO is intended to streamline installation of Leenium by combining an Arch-based base install flow with the Leenium installer payload.
All primary workflows live under bin/:
leenium-iso-make: build an ISOleenium-iso-boot: boot a built ISO locallyleenium-iso-sign: sign a finished ISOleenium-iso-upload: upload a release artifactleenium-iso-release: make, sign, and upload in one flowleenium-vm: local VM helper
There is also a top-level Makefile that wraps these commands with discoverable help and common shortcuts:
make helpRun from the iso/ repo root:
./bin/leenium-iso-makeOr use the Makefile wrapper:
make buildWhat it does:
- Initializes git submodules.
- Prepares a local
release/directory. - Runs the ArchISO build inside Docker.
- Pulls in the Leenium installer repo at the requested ref.
- Writes the finished ISO into
release/. - Renames the artifact to include the installer ref.
- Optionally offers to boot the result.
Typical output looks like:
release/leenium-YYYY-MM-DD-x86_64-<installer-ref>.iso
To build locally you need:
dockergitgumfor the interactive post-build boot prompt
If Docker cannot run privileged containers on the host, the build will fail.
leenium-iso-make supports:
--no-cache: disable the daily package cache--no-boot-offer: skip the interactive boot prompt after build--local-source: use a local installer checkout instead of cloning from Git
Example:
./bin/leenium-iso-make --no-boot-offerMakefile equivalent:
make build NO_BOOT_OFFER=1To test ISO changes together with local installer changes:
LEENIUM_PATH=/path/to/installer ./bin/leenium-iso-make --local-sourceMakefile equivalent:
make build-local LEENIUM_PATH=/path/to/installerThis mounts your local installer repo into the build container instead of cloning from the default upstream source.
The build can be pointed at different installer repos, refs, and package mirrors.
LEENIUM_INSTALLER_REPO: installer Git URLLEENIUM_INSTALLER_REF: installer branch or tagLEENIUM_STABLE_MIRROR_URL: Arch mirror forcore,extra, andmultilibLEENIUM_PACKAGE_REPO_URL: Leenium package repo URL
Example:
LEENIUM_INSTALLER_REPO="https://github.com/leenium/leenium.git" \
LEENIUM_INSTALLER_REF="some-feature" \
./bin/leenium-iso-makeIf you need alternate package hosting:
LEENIUM_STABLE_MIRROR_URL="https://your-mirror.example/\$repo/os/\$arch" \
LEENIUM_PACKAGE_REPO_URL="https://your-packages.example/stable/\$arch" \
./bin/leenium-iso-makeBoot a built ISO:
./bin/leenium-iso-boot release/<iso-name>.isoOr boot the latest ISO automatically:
make bootSign a built ISO:
./bin/leenium-iso-sign release/<iso-name>.isoMakefile equivalent:
make sign ISO=release/<iso-name>.isoUpload a built ISO:
./bin/leenium-iso-upload release/<iso-name>.isoThis requires rclone to be configured first.
Run the release flow:
./bin/leenium-iso-release <version>Makefile equivalent:
make release VERSION=<version>To reuse the newest existing *master.iso without rebuilding first:
make release-no-make VERSION=<version>That flow rebuilds the master ISO, signs it, computes the SHA256, renames it for release, and uploads it.
archiso/: ArchISO sourcesconfigs/: bootloader and airootfs configurationbuilder/: containerized build scriptsbin/: developer and release commandsplans/: install/release planning notes
This repo builds the image.
The installer repo at github.com/leenium/installer defines what Leenium actually becomes once installation runs. In practice:
iso/is the delivery mechanisminstaller/is the system payload
For published ISO downloads, use the links from leenium.org.