This module defines the shared baseline configuration for all hosts.
It contains settings that should apply universally across machines, ensuring
consistency, reproducibility and minimal duplication.
- Provide a unified NixOS base configuration
- Define global Nix and nixpkgs settings
- Enable common services (e.g., SSH)
- Configure Home Manager defaults
- Set fonts and shared paths
- Ensure consistent garbage collection and store behavior
This module is imported by every host through the flake.
Ensures stable behavior across NixOS upgrades.
allow-import-from-derivationauto-optimise-storedownload-buffer-sizetrusted-public-keyssubstitutersgc.automaticgc.optionsextraOptions(enables flakes and keeps derivations)
allowUnfree = true- Optional overlays (commented out)
home-manager.useGlobalPkgs = truehome-manager.useUserPackages = true
- Enables both
opensshandsshd
Adds shared fonts such as:
hack-font
Ensures tools like direnv and Zsh completions are available globally.
Automatically embeds the flake revision into the system configuration.
Add configuration here when:
- It applies to all machines
- It is not user-specific
- It is not hardware-specific
- It is not tied to a particular role (server, desktop, WSL, etc.)
Avoid placing:
- Host-specific settings
- Hardware configuration
- User accounts
- Web stack configuration
- PostgreSQL configuration
- Deployment definitions
Those belong in their respective modules or host files.