Beginner Roadmap¶
First-pass reading order for someone new to Nix and NixOS. Skim each linked page; skip deep dives until a later pass. This page is a curated path only — no runnable example.
Goals¶
- Understand why Nix exists (purity, declarativeness, rollbacks)
- Learn the core vocabulary: derivation, store path, closure, generation
- Read enough Nix language to follow configs, not write packages yet
- Install and configure a basic NixOS system, then meet flakes and keep cheatsheets handy
Prerequisites¶
- Comfortable with a Linux shell and editing text files
- Willing to install NixOS in a VM or spare machine (recommended), or follow along conceptually
- No prior functional programming required
- Skim Reading manuals and search once — how this wiki relates to upstream manuals and search.nixos.org
Reading order¶
1. Philosophy¶
Start with the design goals so later mechanics make sense.
- Philosophy overview
- Why Nix
- Purity and reproducibility
- Declarative vs imperative
- Immutability and rollback
Optional: hermetic builds, tradeoffs.
2. Concepts¶
Build the mental model before touching installers or flakes.
- Concepts overview
- Derivation
- Store path
- Closure
- Generation and profile
- Skim channel and flake (concept) — deep dive later
3. Language (light pass)¶
Enough syntax to read configuration.nix and simple expressions.
Skip builtins, idioms, and packaging patterns for now. Use the language cheatsheet while reading.
4. Store basics¶
How builds land on disk and why GC and caches matter.
- Store and build overview
- Nix store layout
- Builders and sandboxes
- Skim binary caches and garbage collection
5. NixOS install and config¶
Installation and a minimal system config — not a full ops tour.
- NixOS overview
- Installation overview — prefer graphical installer; manual install if needed. Stuck choosing a path? Install and bootstrap
- Optional context: dual boot and VMs if you are installing beside another OS or practicing in a hypervisor guest
- configuration.nix
- hardware-configuration
- Module system and generations and boot
- rebuild: switch, boot, test and rollbacks
Optional (desktop install): NixOS Desktop — compositors, PipeWire, fonts, Flatpak; defer gaming and printing until needed.
Defer services, custom modules, virtualization hosts, and remote deploy until you have a working system.
6. Flakes intro¶
After channels/concepts click, learn the flake surface.
- Flakes overview
- flake.nix schema
- Inputs and outputs
- Lockfile
- Optional: NixOS configurations workflow
- Optional: Config repo layout —
hosts//modules//users/mono-repo shape - Optional skim: import from derivation — why flake checks sometimes trigger builds during eval
7. Cheatsheets¶
Keep these open while practicing:
- Cheatsheets index
- CLI
- Language
- NixOS options patterns
- FAQ: common errors — symptom → cause → deeper leaf
8. Picture-perfect configs (optional)¶
After a first flake/NixOS pass, walk a composed example:
- Minimal flake NixOS host
- Optional: NixOS with Home Manager or Project devShell and direnv
- Index: Configuration examples
Next steps¶
- Follow the operator roadmap for upgrades, troubleshooting, and day-2 ops
- From Ubuntu or Arch: Ubuntu / Arch to NixOS; other apt/pacman/Docker mental models in comparisons
- When ready to package or contribute: contributor roadmap
- Home-manager and nix-darwin live under 10-home-and-user — after a solid NixOS baseline
- Installing Nix (not NixOS) on another OS: Installers and Nix variants
- Stuck on an error message: FAQ: common errors
- Ask the community (after searching): Getting help and community
- Glossary fallback: glossary
See also¶
- Learning roadmaps — path chooser
- Reading manuals and search — manuals + search.nixos.org
- Getting help and community — Discourse / Matrix / GitHub
- Operator — rebuilds, upgrades, deploy, secrets, caches
- Contributor — packaging, modules, nixpkgs contribution
- Comparisons — mental-model bridges from other ecosystems
- Configuration examples — multi-file walkthroughs that compose the domains