# Arcline graphical installer `installer/arcline-installer` is the GTK3 frontend that the live ISO boots into. It is a thin wrapper around `scripts/deploy-disk.sh` — the same, auditable deploy core the scripted installer and disk-image builder use. ## How it works ``` boot ISO → live session (Xorg on vt1) → installer window pick target disk → confirm device path → deploy-disk.sh → reboot ``` The installer extracts `install/arcline-.tar.xz` (the *clean* rootfs archive staged on the ISO by `build-iso.sh`) to a temp dir and runs: ``` /usr/lib/arcline/scripts/deploy-disk.sh --boot ``` streaming the deploy log into the window. Everything destructive lives in `deploy-disk.sh`, which the live image ships (with its dependencies) at `/usr/lib/arcline`: ``` /usr/lib/arcline/scripts/{common,deploy-disk,apply-fstab}.sh /usr/lib/arcline/btrfs/init.sh /usr/lib/arcline/editions/{server,workstation,cloud}/fstab ``` The layout mirrors the repo so the scripts' own path resolution works unchanged. ## Building the ISO ```bash make iso-server # or iso-workstation / iso-cloud ``` `build-iso.sh` builds the clean rootfs, then `build-live.sh` clones it into `build/rootfs/-live` and layers on live-boot, a minimal X session (openbox), the installer, and the deploy tooling. The live session rootfs is **never** what gets installed — the installer always deploys the clean archive, so what you end up with on disk is exactly the hardened system, not the live session with the installer in it. ## Autostart `overlays/live/etc/systemd/system/arcline-installer.service` starts `arcline-installer-session` on boot: it launches Xorg on vt1 (with `-allow-root`, since the live session runs as root) and the installer as the X client. When the installer exits, X and the session end. ## Manual run (for development / on a box without the ISO) ```bash # on any Arcline system with the deploy tooling: sudo /usr/local/bin/arcline-installer ``` The app refuses to run as a non-root user and errors if the deploy tooling is missing. ## Notes - Disk discovery uses `lsblk` (util-linux); read-only devices are hidden. - Confirmation mirrors `scripts/install.sh`: you must type the exact device path before the install button will proceed. - Root is hidden by design; the installer runs before any user session. - For UEFI machines, pick "UEFI" boot mode (or use `BOOT=efi` when building); see `docs/secureboot.md` for signing the boot chain for Secure Boot.