Skip to content

ze install

Thomas Mangin edited this page May 24, 2026 · 6 revisions

Pre-Alpha. This page describes behavior that may change.

ze install serve is a one-command provisioning server that PXE-boots target machines with a gokrazy image containing Ze.

How it works

  1. The operator runs ze install serve on an existing Ze device connected to the provisioning network.
  2. Ze generates a config enabling DHCP (with PXE extensions), TFTP, and an HTTP image server, then forks itself with the config piped to stdin.
  3. A target machine PXE-boots: DHCP assigns an IP and directs it to the TFTP bootloader, which chain-loads the installer kernel and initrd via HTTP.
  4. The installer writes the gokrazy image to disk and reboots.

Quick start

ze install serve \
  --interface eth0 \
  --network 192.168.1.0/24 \
  --image /path/to/gokrazy.img \
  --ssh-username admin \
  --ssh-password changeme

This starts three servers on eth0:

Protocol Port Purpose
DHCP 67/udp IP assignment with PXE options (bootfile, next-server).
TFTP 69/udp Bootloader delivery (iPXE for BIOS/UEFI).
HTTP 80/tcp Disk image and boot file serving.

The server IP is resolved from the interface's first IPv4 address. Use --address to override.

Flags

Flag Required Default Description
--interface Yes Network interface to bind all servers.
--network Yes Provisioning subnet CIDR (/8 to /30).
--image Yes Path to gokrazy disk image file.
--ssh-username Yes Admin username for the installed target.
--ssh-password Yes Admin password (bcrypt-hashed before embedding).
--address No First IPv4 on interface Server IP override.

PXE boot

The DHCP server detects PXE clients via option 60 (PXEClient:) and reads option 93 (client architecture) to select the bootfile:

Architecture Bootfile
BIOS (type 0) ipxe.pxe
UEFI (type 6, 7, 9) ipxe.efi

Requirements

  • Root privileges (DHCP, TFTP, and HTTP bind to privileged ports).
  • Bootloader files in /var/lib/ze/install/tftp/ (iPXE binaries).
  • Installer kernel and initrd in /var/lib/ze/install/boot/.
  • Disk image at the path specified by --image.

See also

  • Appliance for building gokrazy images.
  • Install for other installation methods.

Adapted from main/docs/guide/ze-install.md.

Home

About

First Steps

Configuration

Operation

Interfaces

Plugins

Plugin Development

Chaos Testing

Blueprints

Development

Reference

Clone this wiki locally