Skip to content

Machine type

Those high-level modules are used to define the type of machine.

We expect only one of those to be imported per NixOS configuration.

Common (nixosModules.common)

Use this module if you are unsure if your nixos module will be used on server or desktop.

  • Better nix-daemon defaults
  • Better serial console support
  • Colored package diffs on nixos-rebuild
  • Use systemd in initrd by default and networkd as a backend for the Networking module
  • Do not block on networkd/networkmanager's online target
  • Better zfs defaults
  • Add ssh host keys to well-known Git servers (eg: github)
  • Enable sudo for @wheel users.
  • ...

Server (nixosModules.server)

Use this for headless systems that are remotely managed via ssh.

  • Includes everything from common
  • Enables OpenSSH server
  • Disables desktop features like sound
  • Defaults to UTC
  • Configures watchdog for reboot
  • Sets up sudo without password
  • ...

Desktop (nixosModules.desktop)

Despite this project being about servers, we wanted to dogfood the common module.

  • Includes everything from common
  • Use pipewire instead of PulseAudio.