Work-in-progress NixOS Server Infrastructure
Find a file
2025-05-05 15:19:38 -04:00
data fix: Fix sops 2025-05-05 10:43:13 -04:00
hosts chore: Prepare for first install attempt 2025-05-05 14:07:27 -04:00
secrets@c07d110d71 fix: Fix sops 2025-05-05 10:43:13 -04:00
system fix: Fixes disco configuration 2025-05-05 15:19:38 -04:00
.gitignore chore: Add base configuration. 2025-05-04 23:29:29 -04:00
.gitmodules chore: Add base configuration. 2025-05-04 23:29:29 -04:00
.sops.yaml fix: Fix sops 2025-05-05 10:43:13 -04:00
flake.lock flake.lock: Update 2025-05-05 14:06:11 -04:00
flake.nix fix: Fixes disco configuration 2025-05-05 15:19:38 -04:00
LICENSE chore: Add base configuration. 2025-05-04 23:29:29 -04:00
README.md fix: Fixes disco configuration 2025-05-05 15:19:38 -04:00
SETUP.md fix: Fixes disco configuration 2025-05-05 15:19:38 -04:00

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.

  1. First, boot the NixOS live environment (minimal ISO is recommended).

  2. Then, get the harddrive ID using lsblk or fdisk -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
    
  3. Manually create a host configuration by modifying/duplicating hosts/<target_host_to_base_off_of> to hosts/<new_host_name>. Be sure to modify the hostname in hosts/<new_host_name>/configuration.nix.

  4. Add the host to flake.nix.

  5. Modify the disko configuration for our host to use the correct disk ID that we found earlier.

  6. Make any other additional modifications if needed.

  7. Copy/clone the configuration over to the host to install.

  8. 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, replacing hostname with the host you want to switch to (ex. andromeda).