1
1
Fork 0
NixOS Configuration
Find a file
Myned a3fe5057d3
chore: add todo
Signed-off-by: Myned <dev@bjork.tech>
2024-12-23 22:56:25 -05:00
machines niri: initial module 2024-12-23 13:03:34 -05:00
options chore: add todo 2024-12-23 22:56:25 -05:00
profiles power-profiles-daemon: use ppd for all profiles by default 2024-12-21 13:30:19 -05:00
secrets agenix: modify Caddyfile 2024-12-14 22:25:19 -06:00
.gitignore git: migrate to forgejo 2024-09-12 19:41:21 -05:00
configuration.nix hyprland: use nixpkgs version 2024-11-19 18:59:03 -06:00
flake.in.nix niri: initial module 2024-12-23 13:03:34 -05:00
flake.lock nix: update flake.lock 2024-12-23 13:03:40 -05:00
flake.nix niri: initial module 2024-12-23 13:03:34 -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