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
- Insert USB, hold Option at power-on
- Choose EFI Boot (not Macintosh HD)
- Installer: guided — use entire disk, no LVM
- Hostname: e.g. mini
- Enable SSH server
- 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