Files
euri-mklive/README.md
T
c-ludenberg 3c5a357cb4 euri-mklive: universal CLI ISO builder
- 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
2026-08-26 19:01:19 +02:00

82 lines
1.4 KiB
Markdown

# 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
```bash
pip install .
# or
pipx install .
```
## usage
```bash
# 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:
```yaml
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
1. reads your yaml config
2. bootstraps the target distro into a temporary rootfs
3. installs your packages
4. configures users, services, hostname
5. installs the bootloader
6. squashes the rootfs into an ISO
7. done.
## license
GPL-2.0