Skip to content

Host profiles

A host profile is a template that defines the role of a machine. It is chosen with profile: in etc/config.yaml. Profiles are inherited: each starts from another and adds its specifics.

Diagram
ProfileFor whatInherits fromProvides
minimalBase for every hostHardware, firewall, i18n, zsh, sudo
serverScreenless serverminimalNo sleep, watchdog, limited boot
desktopWorkstationminimalGNOME, multimedia, office suite
laptopLaptopdesktopBattery, sensors, thermald
umiAccessible workstationdesktopAutologin, uinput, Tobii udev
portableBootable USB stickminimalExtended hardware drivers
gatewayZone gatewayserverRouter, firewall, DNS/DHCP, VPN
hcsVPN coordinationserverHeadscale + shared services
vmVirtual machineserverGuest tools (VirtualBox/QEMU/Xen)

Every host loads the full set of firmware, except a virtual machine : just install and just copy-hw detect it, whatever its profile (0.8 GiB less to download).

Workstations (desktop, laptop) print via CUPS and network discovery, without proprietary drivers. For all drivers (HP, Brother, Canon, Epson, Samsung), including on a laptop that already had them:

# usr/machines/<hôte>/configuration.nix
darkone.service.printing.loadAll = true;
etc/config.yaml
hosts:
- hostname: "poste"
profile: "desktop"