142 lines
3.1 KiB
Markdown
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
|
|
```
|