Checking sign-in…

Hardware requirements · NUC setup

Mac mini as Incus host

Turn an Intel Mac mini into a dedicated Incus host with Debian 12. Your laptop runs incus remote add — you do not deploy from the Mini itself.

Architecture

Laptop  →  incus client  →  Mac mini (Debian + Incus)  →  VMs / containers

Prerequisites

  • Intel Mac mini (x86_64) — Apple Silicon uses a different path (Ubuntu/IncusOS)
  • USB 8 GB+ for Debian netinst
  • Ethernet (static IP or DHCP reservation)
  • Physical access for first boot (hold Option for EFI boot)

1 — Download Debian netinst

Debian 12 netinst ISO (amd64) — minimal installer, no desktop required.

2 — Create boot USB

Manual: Etcher or dd the ISO to USB.

Windsor workspace:

windsor init mac-mini-incus-host
windsor context set mac-mini-incus-host
# DEBIAN_NETINST_IMAGE_FILE, USB_DISK, INCUS_REMOTE_IP in windsor.yaml
task device:prepare-debian-netinst-image
task device:write-debian-netinst-disk
task device:eject-disk

3 — Install Debian on Mac mini

  1. Insert USB, hold Option at power-on
  2. Choose EFI Boot (not Macintosh HD)
  3. Installer: guided — use entire disk, no LVM
  4. Hostname: e.g. mini
  5. Enable SSH server
  6. Reboot, remove USB

4 — Update system

sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget git gpg htop

For ZFS later: add contrib to /etc/apt/sources.list lines.

5 — Install Incus

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://pkgs.zabbly.com/key.asc | sudo gpg --dearmor -o /etc/apt/keyrings/zabbly.gpg
echo "deb [signed-by=/etc/apt/keyrings/zabbly.gpg] https://pkgs.zabbly.com/incus/stable $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/incus.list
sudo apt update && sudo apt install -y incus
sudo usermod -aG incus-admin $USER

Log out and back in so incus-admin group applies.

6 — Initialize Incus

incus admin init
# cluster: no | storage: zfs | pool: tank | bridge: incusbr0 | ipv4: auto

7 — VM support

sudo apt install -y qemu-system-x86 qemu-utils ovmf
lscpu | grep Virtualization   # expect VT-x

8 — Enable remote API

Bind to the Mac mini LAN IP (not :8443 alone — cert must match IP):

incus config set core.https_address 192.168.2.102:8443
sudo apt install -y incus-ui-canonical   # optional web UI

9 — Trust token on Mac mini

incus config trust add laptop

Copy the full token — you paste it on the laptop, not y.

10 — Add remote from laptop

brew install incus   # macOS laptop
incus remote add mini https://192.168.2.102:8443
# Accept fingerprint → paste trust token
incus remote list
incus list mini:

Verify mesh host ready

  • Remote works from workstation
  • Test VM: incus launch images:debian/12/cloud test --vm
  • Tracker step 3

Troubleshooting

  • Certificate valid for 127.0.0.1 only — Set core.https_address to LAN IP:8443, remove and re-add remote
  • Browser shows JSON not UI — Install incus-ui-canonical
  • not authorized on token prompt — Paste full token from incus config trust add, not y

Continue — mesh host step Mac Mini notes