feat: generic user, dynamic paths, simplified ISO build pipeline
This commit is contained in:
+33
-26
@@ -1,58 +1,65 @@
|
||||
# Debian Preseed — SeniorNet Kiosk
|
||||
# Silent/unattended installer configuration
|
||||
# Silent unattended Debian base install.
|
||||
# After install, downloads preseed-bootstrap.sh which installs a first-boot
|
||||
# setup wizard. On first reboot the wizard prompts for username/name,
|
||||
# installs the kiosk, then reboots into kiosk mode.
|
||||
|
||||
# Locale and keyboard
|
||||
# ── Locale / keyboard ──────────────────────────────────────────────
|
||||
d-i debian-installer/locale string en_US.UTF-8
|
||||
d-i keyboard-configuration/xkb-keymap select us
|
||||
|
||||
# Network
|
||||
# ── Network ────────────────────────────────────────────────────────
|
||||
d-i netcfg/choose_interface select auto
|
||||
d-i netcfg/get_hostname string kiosk
|
||||
d-i netcfg/get_domain string local
|
||||
d-i netcfg/hostname string kiosk
|
||||
|
||||
# Mirror
|
||||
# ── Mirror ─────────────────────────────────────────────────────────
|
||||
d-i mirror/country string manual
|
||||
d-i mirror/http/hostname string deb.debian.org
|
||||
d-i mirror/http/directory string /debian
|
||||
d-i mirror/http/proxy string
|
||||
|
||||
# Partitioning — use entire disk
|
||||
d-i partman-auto/method string lvm
|
||||
d-i partman-lvm/device_remove_lvm boolean true
|
||||
d-i partman-auto/purge_lvm_confirmation boolean true
|
||||
d-i partman-auto/disk string /dev/sda
|
||||
d-i partman-auto/choose_recipe select atomic
|
||||
d-i partman/confirm_write_new_label boolean true
|
||||
d-i partman/confirm boolean true
|
||||
|
||||
# Clock/timezone
|
||||
# ── Clock / timezone ───────────────────────────────────────────────
|
||||
d-i time/zone string UTC
|
||||
d-i clock-setup/utc boolean true
|
||||
d-i clock-setup/ntp boolean true
|
||||
|
||||
# Account setup — root with no password
|
||||
# ── Accounts ───────────────────────────────────────────────────────
|
||||
# Root only — install-kiosk.sh creates the kiosk user interactively.
|
||||
d-i passwd/root-login boolean true
|
||||
d-i passwd/make-user boolean false
|
||||
d-i passwd/root-password password kiosk
|
||||
d-i passwd/root-password-again password kiosk
|
||||
|
||||
# APT
|
||||
# ── Disk — auto-detect first real disk ─────────────────────────────
|
||||
# Handles /dev/sda, /dev/nvme0n1, /dev/vda, etc.
|
||||
d-i preseed/early_command string \
|
||||
DISK=$(ls /sys/block/ | grep -Ev '^(loop|sr|fd|ram)' | head -1); \
|
||||
debconf-set partman-auto/disk "/dev/$DISK"; \
|
||||
debconf-set grub-installer/bootdev "/dev/$DISK"
|
||||
|
||||
d-i partman-auto/method string regular
|
||||
d-i partman-auto/choose_recipe select atomic
|
||||
d-i partman/confirm_write_new_label boolean true
|
||||
d-i partman/confirm boolean true
|
||||
d-i partman/confirm_nooverwrite boolean true
|
||||
|
||||
# ── APT ────────────────────────────────────────────────────────────
|
||||
d-i apt-setup/services-select multiselect security, updates
|
||||
d-i apt-setup/security_host string security.debian.org
|
||||
|
||||
# Package selection
|
||||
# ── Package selection ──────────────────────────────────────────────
|
||||
tasksel tasksel/first multiselect standard, ssh-server
|
||||
d-i pkgsel/include string openssh-server build-essential git curl wget
|
||||
d-i pkgsel/include string curl git
|
||||
|
||||
# Grub bootloader
|
||||
# ── Bootloader ─────────────────────────────────────────────────────
|
||||
d-i grub-installer/only boolean true
|
||||
d-i grub-installer/bootdev string default
|
||||
|
||||
# Finish installation
|
||||
d-i finish-install/reboot_in_background boolean true
|
||||
|
||||
# Run post-install script
|
||||
# ── Post-install bootstrap ─────────────────────────────────────────
|
||||
# Downloads preseed-bootstrap.sh which installs the first-boot setup service.
|
||||
d-i preseed/late_command string \
|
||||
in-target bash -c 'curl -fsSL https://gitea.jgitta.com/jgitta/senior-kiosk/raw/master/install-kiosk.sh | bash' || \
|
||||
in-target bash -c 'cd /root && git clone https://gitea.jgitta.com/jgitta/senior-kiosk.git && bash senior-kiosk/install-kiosk.sh'
|
||||
in-target bash -c 'curl -fsSL https://gitea.jgitta.com/jgitta/senior-kiosk/raw/branch/master/preseed-bootstrap.sh | bash'
|
||||
|
||||
# ── Finish ─────────────────────────────────────────────────────────
|
||||
d-i finish-install/reboot_in_background boolean true
|
||||
|
||||
Reference in New Issue
Block a user