Configuration of my nixos systems
Go to file
Valentin Brandl 4b75abd75b
flake.lock: Update
Flake lock file updates:

• Updated input 'flake-utils':
    'github:numtide/flake-utils/b1d9ab70662946ef0850d488da1c9019f3a9752a' (2024-03-11)
  → 'github:numtide/flake-utils/c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a' (2024-09-17)
• Updated input 'home-manager':
    'github:nix-community/home-manager/208df2e558b73b6a1f0faec98493cb59a25f62ba' (2024-09-07)
  → 'github:nix-community/home-manager/1bbc1a5a1f4de7401c92db85b2119ed21bb4139d' (2024-09-20)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/8f7492cce28977fbf8bd12c72af08b1f6c7c3e49' (2024-09-14)
  → 'github:nixos/nixpkgs/086b448a5d54fd117f4dc2dee55c9f0ff461bdc1' (2024-09-16)
• Updated input 'nixpkgs-unstable':
    'github:nixos/nixpkgs/345c263f2f53a3710abe117f28a5cb86d0ba4059' (2024-09-13)
  → 'github:nixos/nixpkgs/99dc8785f6a0adac95f5e2ab05cc2e1bf666d172' (2024-09-16)
2024-09-20 12:40:47 +02:00
hardware Sync config 2021-12-29 13:06:12 +01:00
home Disable aerc 2024-08-13 18:25:14 +02:00
machines Configure but disable auto upgrade task 2024-09-01 14:54:58 +02:00
roles Use IDEA ultimate over community 2022-02-15 13:33:28 +01:00
users Enable git sendemail 2022-12-18 11:57:03 +01:00
configuration.nix Restructure to use flakes 2022-02-15 15:45:24 +01:00
flake.lock flake.lock: Update 2024-09-20 12:40:47 +02:00
flake.nix Update to nixos 24.05 2024-06-15 16:02:25 +02:00
hardware-configuration-current.nix Initial commit 2020-05-30 14:07:02 +02:00
README.md Document mail setup 2022-12-18 11:56:25 +01:00
renovate.json5 Enable renovate 2024-04-18 16:50:45 +02:00
role-current.nix Initial commit 2020-05-30 14:07:02 +02:00

NixOS Configuration

Now using Flakes \o/

Updating Channels/the Lockfile

nix flake lock
nix flake update

Installing/Updating the System

sudo nixos-rebuild switch --flake <path-to-repo>#<hostname>
sudo nixos-rebuild switch --flake .#w1n5t0n

Mail Setup

secret-tool store --label 'foo@example.com' email 'foo@example.com'

Encrypted Btrfs Setup

  • cryptsetup luksFormat --format=luks1 /...
  • cryptsetup luksOpen /... system
  • mkfs.btrfs /dev/mapper/system
  • mount /dev/mapper/system /mnt
  • btrfs subvolume create /mnt/root
  • btrfs subvolume create /mnt/home
  • btrfs subvolume create /mnt/nix
  • btrfs subvolume create /mnt/swap
subvolume mount options
home compress=zstd
swap compress=zstd,noatime
root compress=zstd
nix compress=zstd,noatime
  • /boot/efi as vfat TODO: partitioning command
  • TODO: create swap
  • mount subvolumes
  • `nixos-generate-config --root /mnt
  • add mount options in hardware-configuration.nix / create matching configuration in ./machines
  • TODO: config for luks, bootloader, ...
  • For snapper: create .snapshots subvolume in each subvolume to be backed up