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.
Inheritance
Section titled “Inheritance”Profiles
Section titled “Profiles”| Profile | For what | Inherits from | Provides |
|---|---|---|---|
minimal | Base for every host | Hardware, firewall, i18n, zsh, sudo | |
server | Screenless server | minimal | No sleep, watchdog, limited boot |
desktop | Workstation | minimal | GNOME, multimedia, office suite |
laptop | Laptop | desktop | Battery, sensors, thermald |
umi | Accessible workstation | desktop | Autologin, uinput, Tobii udev |
portable | Bootable USB stick | minimal | Extended hardware drivers |
gateway | Zone gateway | server | Router, firewall, DNS/DHCP, VPN |
hcs | VPN coordination | server | Headscale + shared services |
vm | Virtual machine | server | Guest 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.nixdarkone.service.printing.loadAll = true;Choosing a profile
Section titled “Choosing a profile”hosts: - hostname: "poste" profile: "desktop"