1
1
Fork 0
NixOS Configuration
Find a file
2024-10-26 14:56:43 -05:00
machines linux: fix amdgpu manual power profile with kernel 6.11 2024-10-25 13:41:04 -05:00
options hyprland: remove lock on browser group 2024-10-26 13:23:13 -05:00
profiles borgmatic: disable matrix-conduit service backup path 2024-10-26 14:56:43 -05:00
secrets agenix: edit netbox .env 2024-10-22 12:40:24 -05:00
.gitignore git: migrate to forgejo 2024-09-12 19:41:21 -05:00
configuration.nix agenix: fix file group 2024-10-19 14:15:49 -05:00
flake.in.nix nix: lock hyprland to v0.44.1 2024-10-22 13:20:13 -05:00
flake.lock nix: update flake.lock 2024-10-22 13:20:21 -05:00
flake.nix nix: lock hyprland to v0.44.1 2024-10-22 13:20:13 -05:00
LICENSE git: migrate to forgejo 2024-09-12 19:41:21 -05:00
README.md chore: update readme 2024-10-08 21:28:14 -05:00

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