Files
nixos-config/README.md
T

142 lines
3.1 KiB
Markdown

# NixOS Config
TODO...
## Neuinstallation
### 1. Live Installer booten
Als erstes muss in den NixOS Graphical installer gebootet werden.
Dort dann den Installer schließen, Tastatur in den Einstellungen auf DE stellen und ein Terminal öffnen.
Außerdem diese Seite im Browser öffnen.
### 2. nix-shell Umgebung einrichten
``` bash
export NIX_CONFIG="experimental-features = nix-command flakes"
```
``` bash
nix-shell -p sops age age-plugin-yubikey pcsclite pcsc-tools ccid
```
``` bash
CCID="$(nix eval --raw nixpkgs#ccid.outPath)"
```
``` bash
sudo mkdir -p /var/lib/pcsc/drivers/
```
``` bash
sudo cp -a "$CCID/pcsc/drivers/ifd-ccid.bundle" /var/lib/pcsc/drivers/
```
``` bash
sudo pkill pcscd
```
``` bash
sudo pcscd --foreground
```
In einem neuen Terminalfenster wiederhole...
``` bash
export NIX_CONFIG="experimental-features = nix-command flakes"
```
``` bash
nix-shell -p sops age age-plugin-yubikey pcsclite pcsc-tools ccid
```
... und führe hier alle weiteren Befehle aus.
### 3. Git Repo klonen
``` bash
cd /tmp
```
``` bash
git clone https://git.hausfalke.de/fe5hua/nixos-config
```
``` bash
cd nixos-config
```
### 4. Festplatte mit disko formatieren
``` bash
sudo -E nix run github:nix-community/disko -- --mode disko --flake .#desktop
```
Überprüfe mit `lsblk`.
### 5. Bootstrap-Skript ausführen
Um den host-key zu generieren und sops anzupassen, ist es notwendig ein Bootstrap-Skript laufen zu lassen.
Dafür muss zunächst der Key ausgewählt werden (Yubikey oder Bitwarden):
Yubikey einstecken und:
``` bash
age-plugin-yubikey --list
```
Dann entsprechend:
```bash
sudo env SOPS_AGE_KEY_FILE=./age/yubikey-14321697.txt ./scripts/bootstrap-host.sh
```
oder
```bash
sudo env SOPS_AGE_KEY_FILE=./age/yubikey-32464919.txt ./scripts/bootstrap-host.sh
```
oder für den Recovery-Key aus Bitwarden (Dieser muss zunächst exportiert werden und als .txt Datei gespeichert werden)
```bash
sudo env SOPS_AGE_KEY_FILE=/path/to/recovery-keyfile.txt ./scripts/bootstrap-host.sh
```
### 6. NixOS installieren
``` bash
sudo nixos-install --flake /tmp/nixos-config#desktop
```
``` bash
sudo reboot
```
### 7. Nach der Installation
Melde dich als `user` an.
``` bash
cd ~/nixos-config
```
Klone das Repo:
``` bash
git clone https://git.hausfalke.de/fe5hua/nixos-config .
```
Erstelle die lokale `.sops.yaml`:
``` bash
HOST_RECIPIENT="$(sudo age-keygen -y /persist/keys/host-age.key)"
```
``` bash
sed "s|AGE_HOST_D|$HOST_RECIPIENT|g" .sops.yaml.template > .sops.yaml
```
## Probleme
Als erstes muss in den NixOS Graphical installer gebootet werden.
Dort dann den Installer schließen, Tastatur in den Einstellungen auf DE stellen und ein Terminal öffnen.
Außerdem diese Seite im Browser öffnen.
``` bash
export NIX_CONFIG="experimental-features = nix-command flakes"
```
``` bash
sudo cryptsetup luksOpen /dev/sda2 cryptroot
```
``` bash
mkdir -p /mnt/boot /mnt/nix /mnt/persist
```
``` bash
sudo mount -o subvol=@nix /dev/mapper/cryptroot /mnt/nix
```
``` bash
sudo mount -o subvol=@persist /dev/mapper/cryptroot /mnt/persist
```
``` bash
sudo mount /dev/sda1 /mnt/boot
```
``` bash
sudo nixos-enter --root /mnt
```