- 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
82 lines
1.4 KiB
Markdown
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
|