2 KiB
Tera's NixOS Home Infrastructure
Work-in-progress NixOS Server Infrastructure based on valerie's NixOS setup.
WARNING
This is a work-in-progress and currently DOES NOT WORK. Please check back later.
Setup
Bootstrapping a New Device
This guide assumes you have a somewhat sane sops setup.
-
First, boot the NixOS live environment (minimal ISO is recommended).
-
Then, get the harddrive ID using
lsblk
orfdisk -l
:sudo fdisk -l ls -lah /dev/disk/by-id | grep -i <drive disk ID ie. sda>
Example output:
[nix-shell:~]$ sudo fdisk -l Disk /dev/loop0: 1.14 GiB, 1221455872 bytes, 2385656 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/sda: 256 GiB, 274877906944 bytes, 536870912 sectors Disk model: QEMU HARDDISK Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes [nix-shell:~]$ ls -lah /dev/disk/by-id | grep -i sda lrwxrwxrwx 1 root root 9 May 5 13:20 scsi-0QEMU_QEMU_HARDDISK_drive-scsi0 -> ../../sda [nix-shell:~]$ # disk path: /dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive-scsi0
-
Manually create a host configuration by modifying/duplicating
hosts/<target_host_to_base_off_of>
tohosts/<new_host_name>
. Be sure to modify the hostname inhosts/<new_host_name>/configuration.nix
. -
Add the host to
flake.nix
. -
Modify the disko configuration for our host to use the correct disk ID that we found earlier.
-
Make any other additional modifications if needed.
-
Copy/clone the configuration over to the host to install.
-
Run
sudo nix --experimental-features "nix-command flakes" run github:nix-community/disko/latest -- --mode destroy,format,mount -f "$PWD#hostname"
to prepare the disk, replacinghostname
with the host you want to switch to (ex.andromeda
).