3c5a357cb4d1dfd3959661e5b06d69da2331d811
- any distro from any distro (debian, ubuntu, arch, artix, void, alpine, fedora) - YAML config for distro, arch, init, packages, users, services, bootloader - each distro backend knows how to bootstrap itself - squashfs + xorriso for ISO generation - sexy CLI with banner and colored output - examples for Artix+Euri and Project Horizon
euri-mklive
universal CLI iso builder. any distro, from any distro.
build a debian iso on arch. an arch iso on fedora. an artix iso on ubuntu. doesn't matter.
install
pip install .
# or
pipx install .
usage
# see what's supported
euri-mklive supported
# build from a config
euri-mklive build my-config.yaml -o ./output
config
yaml config that defines everything:
distro: artix # debian | ubuntu | arch | artix | void | alpine | fedora
arch: x86_64
init: dinit # dinit | openrc | runit | s6
hostname: mydistro
iso:
name: My Distro
version: "1.0"
label: MYDISTRO
users:
- name: user
shell: /bin/bash
groups: [wheel]
packages:
- linux
- plasma-desktop
- nano
- git
services:
- connmand
- sddm
supported distros
| distro | bootstrap tool | init systems |
|---|---|---|
| debian | debootstrap | systemd |
| ubuntu | debootstrap | systemd |
| arch | pacstrap | systemd |
| artix | basestrap | openrc, runit, s6, dinit |
| void | xbps-install | runit, dinit |
| alpine | apk | openrc |
| fedora | dnf | systemd |
how it works
- reads your yaml config
- bootstraps the target distro into a temporary rootfs
- installs your packages
- configures users, services, hostname
- installs the bootloader
- squashes the rootfs into an ISO
- done.
license
GPL-2.0
Languages
Python
51.3%
Shell
48.7%