This is a hands-on course for turning a Dell laptop into a personal NixOS system that you understand and control.
It is a starter, not somebody else's finished configuration. You will make
the important choices, write the Nix, test it, and gradually turn the generated
repository into your own nixos-config.
- Read START_HERE.md.
- Work through the lessons in order.
- Tick the boxes in PROGRESS.md.
- Make a small commit at every checkpoint.
- Ask questions whenever a command does not make sense.
This starter is public, but the personal repository created from it should be private. Maintainers should read OWNER_SETUP.md; learners should let Lesson 00 create an independent repository under their own account.
The course deliberately stops before giving a generic disk-install command. Installing an operating system can erase a disk, and the correct plan depends on the exact laptop and whether you are replacing or keeping its current OS.
| Lesson | What you will learn | What you will create |
|---|---|---|
| 00 | Create and own your repository | nixos-config and MY_SYSTEM.md |
| 01 | Use Git as a history of decisions | Your first authored commits |
| AI research | Investigate and verify AI-assisted answers | A cited research note |
| 02 | Read and evaluate Nix | Small Nix exercises |
| 03 | Build without installing globally | A store result |
| 04 | Pin inputs and define outputs | flake.nix and flake.lock |
| 05 | Make project tools reproducible | A development shell |
| 06 | Describe a NixOS system | A host entrypoint |
| 07 | Gather facts from the Dell | HARDWARE.md |
| 08 | Design storage safely | INSTALL_PLAN.md |
| 09 | Choose the human-facing system | Desktop and user modules |
| Dev workstation | Declare Zed, languages, and local coding agents | A development module |
| Install software | Find, test, declare, and remove software with Nix | A personal software choice |
| 10 | Prove the configuration builds | A verified system closure |
| 11 | Review before changing disks | A reviewed installation plan |
| Dev verification | Prove the installed toolchain works | Disposable smoke checks |
| 12 | Update, test, switch, and roll back | A repeatable operating routine |
Safety is about the impact of an action, not the age or skill of the person typing it.
- Green: reading files,
git diff,nix repl, evaluation, and builds. - Amber: commands using
sudo, activating a configuration, changing the network, or publishing a repository. Pause and inspect the exact change. - Red: partitioning, formatting, installing an OS, deleting data, handling secrets, or changing recovery access. Get a second human review and a tested backup first.
Never paste passwords, recovery codes, private keys, API tokens, decrypted secrets, or machine serial numbers into Git, an issue, or an AI chat.
The prompts in prompts/ work with a local model, Gemini, ChatGPT, Claude, or another assistant. A useful assistant explains evidence, asks you to reason, and shows a diff. It does not replace understanding or make red actions safe. The AI research field guide teaches a reusable loop: inspect local evidence, ask a precise question, verify primary sources, test the smallest claim, and challenge the conclusion.
This course uses the current stable NixOS release branch, nixos-26.05.
Flakes are still described as experimental by upstream Nix, but are used here
intentionally because the finished configuration is a flake-based repository.
The course is available under the MIT License. Never copy private learner configuration, support logs, screenshots, or hardware identifiers back into this public starter.