Skip to content

Myned/nixos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

576b0b7 · Feb 19, 2025
Feb 1, 2025
Feb 19, 2025
Feb 10, 2025
Feb 10, 2025
Sep 13, 2024
Sep 13, 2024
Oct 9, 2024
Feb 17, 2025
Feb 17, 2025
Feb 17, 2025
Feb 17, 2025

Repository files navigation

WARNING

This configuration is not meant for public usage

Install

Remote (with NixOS Anywhere)

  1. Clone this repository
git clone https://github.com/myned/nixos
  1. Enable Flakes

  2. Boot from NixOS minimal installer

  3. Create machine-specific modules in machines/MACHINE/

a. Machine configuration and hostname in default.nix

{ custom.hostname = "MACHINE"; }

b. Disko layout in disko.nix

# Verify /dev identifier on machine
lsblk

# Verify EFI/BIOS firmware on machine
[ -d /sys/firmware/efi/efivars ] && echo "UEFI" || echo "BIOS"

c. Generated hardware configuration in hardware-configuration.nix

nixos-generate-config --show-hardware-config --no-filesystems --root /mnt
  1. Choose profile and add machine-specific modules to flake.in.nix
MACHINE = BRANCH "ARCHITECTURE" [ ./profiles/PROFILE ./machines/MACHINE ];
  1. Generate and lock flake.nix with flakegen
cd nixos
git add .
nix run .#genflake flake.nix
nix flake lock
  1. Generate machine SSH key and rekey agenix secrets with added public key
mkdir -p tmp/etc/ssh/
ssh-keygen -f tmp/etc/ssh/id_ed25519 -N '' -C root@MACHINE
cd secrets
agenix -r
  1. Add user SSH key to root authorized_keys on machine
# On host
cat ~/.ssh/id_ed25519.pub | wl-copy
# On machine
sudo mkdir /root/.ssh/
sudo nano /root/.ssh/authorized_keys
  1. Execute NixOS Anywhere
nixos-anywhere --extra-files tmp --flake .#MACHINE root@IP
  1. Shutdown, detach ISO, and reboot

  2. Remove temporary files

rm -r tmp