Heya, been hearing about NixOS for a long time now, mostly from the peeps over at the Linux Unplugged podcast. So was thinking about jumping onto the nix-train, however it seems like it has a learning curve. Does anyone have any good learning resources, blog-posts, guides, whatever beans that you used to get started with NixOS?
Appreciate any tips ❄️
Im on my own NixOS journey right now, so i cant fully vouch for all this yet. Here are my bookmarks for Nix/NixOS learning resources:
- Zero to Nix: Nix and flakes quick start guide.
- Nix Pills: Introduction to Nix package manager and nixpkgs collection.
- A tour of Nix: Introduction to the Nix language.
- NixOS & Flakes book: Book about NixOS and flakes.
- NixOS in production book: Book about using NixOS in production environment (incomplete).
- Nix dev: Documentation
- Nix-notes github repo: Some notes about a bunch of topics.
- Nix from first principles (Flake edition) blog
Apart from all this, ive learned the most from a mix of looking at other people’s configurations and reading source code. The documentation is super messy, especially if you want to make use of flakes (which i personally recommend from the get go).
+1 for these! I’d also add https://nixos.asia/en
After you’re done with the initial setup, I’ve found looking for nix code on GitHub to be very useful for seeing how to do things.
NixOS docs themselves are a tad lax, but it will get better.
Learning nix itself is also important:
Just this morning I was having issues with a wacky dual-boot install with NixOS and Windows sharing an EFI partition, and quite interestingly ChatGPT and I were able to troubleshoot the process and get it resolved in under half and hour. I was really impressed by the specific configurations it was giving me for my /etc/nixos/configuration.nix , so that is also another resource you may consider leaning on when you run into walls in other documentation sources.
If you’re interested in using flakes, this repo was helpful when learning how to get my first system configurations set up in an organized way https://github.com/Misterio77/nix-starter-configs