My NixOS configuration and deployment.
Go to file
2023-08-18 19:45:49 +02:00
yodaTux enable SSH server 2023-08-18 19:41:21 +02:00
.gitignore add .gitignore 2023-08-16 14:23:51 +02:00
README.md update README 2023-08-18 19:45:49 +02:00

NixOS

  • There is controversy about flakes, rather use channels (e.g. with niv)

Build and Switch

Directly change to new config, make it default:

sudo nixos-rebuild -I nixos-config=yodaTux/configuration.nix switch

Install Home Manager with niv

Easy dependency management for Nix projects.

Nix is a very powerful tool for building code and setting up environments. niv complements it by making it easy to describe and update remote dependencies (URLs, GitHub repos, etc). It is a simple, practical alternative to Nix flakes.

https://github.com/nmattia/niv

[Home Manager] allows declarative configuration of user specific (non global) packages and dotfiles.

To avoid breaking users' configurations, Home Manager is released in branches corresponding to NixOS releases ( e.g. release-23.05).

Home Manager provides both the channel-based setup and the flake-based one.

https://github.com/nix-community/home-manager

Check your channel:

sudo nix-channel --list
#=> nixos https://nixos.org/channels/nixos-23.05

Use the corresponding branch:

niv add nix-community/home-manager -n home-manager -b release-23.05

disko and nixos-anywhere

TODO

General Notes

Nix Pills

It provides a tutorial introduction into the Nix package manager and Nixpkgs package collection, in the form of short chapters called 'pills'.

Thesis

There are two (?) theses about Nix. One is https://edolstra.github.io/pubs/phd-thesis.pdf

Search for packages

Search for options

TODOS

Automount Encrypted Drive

  • Generate and add keyfile to LUKS device
  • luksOpen and mount drive, e.g. to /mnt/data1
  • Re-generate hardware configuration:
sudo nixos-generate-config --dir yodaTux