Mokou#

Storage#

Mount Device Notes
/, /nix 2 × SSD, LUKS + btrfs FIDO2-unlocked in initrd; the root SSD is the cramped one
/data 3 TB WD Red, LUKS (cryptdata) + ext4 Ollama models, container storage, ~/Dropbox bind source
/pool 2 × 3 TB WD Red, LUKS (cryptpool0/cryptpool1) + btrfs RAID1 Cold bulk storage, mirrored

The /pool mirror#

/pool exists to take cold, loss-tolerant bulk off the 256 GB root SSD, which runs ~86–90 % full and fully chunk-allocated (this is what trips FilesystemAlmostFull). Phase 1 relocates ~46 G of package/model caches — ~/.cache/{huggingface,uv,pip} — via bind mounts from /pool/cache/tsunami/. ~/code artifacts and media are a later phase.

Both members are whole-disk LUKS2, mirrored with btrfs -d raid1 -m raid1, and weekly-scrubbed (services.btrfs.autoScrub) so the mirror can actually self-heal.

Unlock flow. The pool is not in the initrd. It unlocks after boot from /etc/crypttab using a keyfile (/etc/luks/pool.key) that lives on the already FIDO2-protected encrypted root, so there are no extra touches per boot. FIDO2 and a passphrase are enrolled as recovery slots for rescue-shell use only. Everything is nofail: a missing or failed pool leaves /pool and its binds simply unmounted (caches regrow on the SSD — a space regression, not data loss) rather than blocking boot, which matters most precisely when a mirror member has died.

Provisioning and recovery. The pool is deliberately kept out of disko.devices so that scripts/install.sh’s destroy,format,mount can never reach it — a reinstall wipes root/nix and the pool survives. The cost is that provisioning is a manual one-shot recipe. That recipe, the by-id disk serials (including the third Red that must not be touched), and the degraded-mount / btrfs replace recovery procedure all live in the header comment of hosts/x86_64-nixos/mokou/pool.nix.

Fastfetch#

          ▗▄▄▄       ▗▄▄▄▄    ▄▄▄▖
          ▜███▙       ▜███▙  ▟███▛
           ▜███▙       ▜███▙▟███▛              tsunami@mokou
            ▜███▙       ▜██████▛               -------------
     ▟█████████████████▙ ▜████▛     ▟▙         OS: NixOS 26.05 x86_64
    ▟███████████████████▙ ▜███▙    ▟██▙        Host: ASUS MB
           ▄▄▄▄▖           ▜███▙  ▟███▛        Kernel: Linux 6.12.10-zen1
          ▟███▛             ▜██▛ ▟███▛         Uptime: 3 days, 18 hours, 57 mins
         ▟███▛               ▜▛ ▟███▛          Packages: 1758 (nix-system), 931 (nix-user), 26 (flatpak-system), 37 (flatpak-user)
▟███████████▛                  ▟██████████▙    Shell: fish 3.7.1
▜██████████▛                  ▟███████████▛    Display (DELL P2715Q): 3840x2160 @ 60 Hz (as 1920x1080) in 27" [External] *
      ▟███▛ ▟▙               ▟███▛             Display (DELL P2715Q): 3840x2160 @ 60 Hz (as 1920x1080) in 27" [External]
     ▟███▛ ▟██▙             ▟███▛              DE: KDE Plasma
    ▟███▛  ▜███▙           ▝▀▀▀▀               WM: KWin (Wayland)
    ▜██▛    ▜███▙ ▜██████████████████▛         WM Theme: Breeze
     ▜▛     ▟████▙ ▜████████████████▛          Theme: Fusion (BreezeLight) [Qt], Sweet-Ambar-Blue-Dark [GTK2/3/4]
           ▟██████▙       ▜███▙                Icons: breeze [Qt], breeze [GTK2/3/4]
          ▟███▛▜███▙       ▜███▙               Font: Noto Sans (10pt) [Qt], Noto Sans (10pt) [GTK2/3/4]
         ▟███▛  ▜███▙       ▜███▙              Cursor: breeze (18px)
         ▝▀▀▀    ▀▀▀▀▘       ▀▀▀▘              Terminal: code 1.96.2
                                               CPU: Intel(R) Core(TM) i7-4790K (8) @ 4.00 GHz
                                               GPU: NVIDIA GeForce GTX 1080 [Discrete]
                                               Memory: 21.84 GiB / 31.29 GiB (70%)
                                               Swap: 8.50 GiB / 8.50 GiB (100%)
                                               Disk (/): 417.92 GiB / 464.26 GiB (90%) - btrfs
                                               Local IP (eno1): 192.168.0.139/24
                                               Locale: en_US.UTF-8
  • Ollama — mokou is the GPU fallback for LLM inference.
  • Ereshkigal — runs the failover proxy that fronts this host.