| your Linux construction kit
Source

Every deployment is unattended. Every operation is scripted.

kldload was designed from the start to be hands-free. The web UI is for humans who want to watch. The real power is in the automation layer — seed disks, answer files, systemd services, and hooks that do everything without you touching a keyboard.

Unattended installation

Seed disk: plug and walk away

Format a USB drive as FAT32, label it KLDLOAD-SEED, drop an answers.env file on it. Insert it alongside the ISO. Boot. The system finds the seed disk, reads the answers, installs to the target disk, and powers off. Zero interaction.

The answer file is just environment variables:

KLDLOAD_INSTALL_DISK=/dev/vda
KLDLOAD_HOSTNAME=web-prod-01
KLDLOAD_USERNAME=admin
KLDLOAD_PASSWORD=changeme
KLDLOAD_STORAGE_MODE=zfs
KLDLOAD_TIMEZONE=America/Vancouver
KLDLOAD_PROFILE=server
Write the recipe card. Stick it on the fridge. Dinner makes itself.

Autoinstall service

kauto.service runs on every live boot. It scans for a seed disk. If found, it installs. If not, it starts the web UI and waits for a human. Same ISO. Same boot. Attended or unattended — determined by whether a seed disk is present.

Firstboot automation

Role-specific setup on first power-on

kfirst.service runs once on the first boot of an installed system. It reads the install manifest (/etc/kldload/install-manifest.env), determines the node's role (server, desktop, kvm, etc.), and configures accordingly. WireGuard keys, Salt enrollment, service activation — all automatic.

The house builds itself based on the blueprints you left in the mailbox.

Systemd services and timers

kldload installs 13+ systemd services and 3 timers that handle automatic snapshots, package holds, boot-time health checks, and more. Everything runs on schedule. Everything logs.

ksnap.timer
Hourly boot environment snapshot. Always have a known-good state.
kldload-srv-snapshot.timer
Snapshot /srv every 15 minutes. Service data is never more than 15 minutes old.
kldload-package-holds.service
Marks kernel, ZFS, and bootloader packages as held. No surprise breakage from auto-updates.
kweb.service
Web UI server. Auto-starts, auto-restarts on failure. Port 8080.
kauto.service
Seed disk scanner. Runs on live boot, triggers unattended install if seed found.

Disk labeling & asset management

Know what's in the rack before you open the door

kldload supports structured disk labels that encode physical location, ZFS pool membership, hardware details, and lifecycle information. Every disk knows where it lives, what pool it belongs to, when its warranty expires, and where to reorder it.

PHYSICAL LOCATION
  Region: CA-WEST-1  Datacenter: YVR01  Rack: R12-08  Slot: SLOT07

ZFS INFORMATION
  Pool: prd-caw1-db-gold-nvme  VDEV: slot07  Layout: draid2:10d:2c:128s

LIFECYCLE
  Asset ID: UB-DSK-CAW1-88322  Warranty: 2028-02-12
  RMA: https://cdw.ca/rma/S6ZUNX0R123456A
Every disk has a passport. When it fails, you know exactly what to order and where to put it.