- 1. Getting Started with the Nix Ecosystem
- 1.1. Nix Language
- 1.2. Nix Package Manager
- 1.3. Cachix and the devour-flake
- 1.3.1. Nix Paths
- 1.4. Version Control with Git
- 1.5. Version Control with JJ
- 2. Installation
- 2.1. Unencrypted Setups
- 2.2. Unencrypted Impermanence
- 3. Encrypted Setups
- 3.1. Encrypted Impermanence
- 3.2. USB Stick Keyfile
- 3.3. Sops-Nix encrypted secrets
- 3.4. Secure Boot with Lanzaboote
- 4. Understanding Nix Functions
- 4.1. Practical Nix Functions
- 4.2. Functions and NixOS Modules
- 5. NixOS Modules Explained
- 6. Nix Flakes Explained
- 6.1. Nix Flake Inputs
- 6.2. Nix Flake Outputs
- 6.3. Nix Flake Examples
- 6.4. Hack the Helix Flake
- 6.5. Extending Flakes with Custom Packages using Overlays
- 6.6. NixOS Specialisations For Multiple Profiles
- 7. Understanding Top-Level Attributes
- 8. Package Definitions Explained
- 9. Intro to Nix Derivations
- 9.1. Builders and Autotools
- 10. Comparing Flakes and Traditional Nix
- 11. Debugging and Tracing NixOS Modules
- 12. Working with Nixpkgs Locally
- 12.1. Fork, Clone, Contribute
- 12.2. Build a local package within a Nixpkgs Clone
- 12.3. Nixpkgs Overlays to Override Version
- 13. Nix Pull Requests
- 14. Intro to Nushell on NixOS
- 15. NixOS Containers