Three laptops and one homelab:
- Dell XPS 9510
- Thinkpad X1 Carbon 6th gen
- Macbook pro M1 Max
- Raspberry pi 4th gen
My personal laptops have access to the homelab using ssh and Wireguard. My work laptop cannot does not have directly access to the homelab.
- home: home manager configurations.
- hosts: host system configurations.
- nix: flake modules.
- overlays: package overlays.
- scripts: system management scripts.
- secrets: secrets.
You can use direnv to easily manage this flake.
After executing direnv allow
, you should have a shell powered by devshell and by running menu
you have an help message.
menu
The following instructions are valid for all machines except the Macbook pro.
In my personal laptops the disk is erased at every boot in order to obtain a complete immutable and declarative system. This is achieved thanks to BTRFS.
Obviously some data, logs, cache, etc. must survive the boot process, this is achieved using imperamanence.
Some useful readings if you are interested:
git clone https://github.com/fedeizzo/nix-dotfiles.git
cd nix-dotfiles
nix develop
erase-disk-and-install-{machine}
Unfortunately I didn’t find a way to create a directory under /persist/home/{user}
with the right permissions, the script run automatically the post initrd and it doesn’t have the user ids.
A simple workaround is to setup the home manually after the first boot:
chown {user}:users /persist/home/{user}/
chmod 700 /persist/home/{user}