nixos/CLAUDE.md
Alexander Wainwright 82778b6deb docs: add remote deploy/list-generations to readme, tidy CLAUDE.md
Move deploy commands to readme.md. Update CLAUDE.md to reference
readme for commands and reflect the core/base module split and
current host list.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-11 19:55:17 +10:00

1.9 KiB

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

See readme.md for deploy commands.

Architecture

This is a NixOS flake repository managing multiple hosts with shared Home Manager configuration.

Entry point: flake.nix — defines all host configurations via nixosConfigurations. A shared mkHomeManagerConfig helper wires Home Manager into each host. The inputs are passed as specialArgs so all modules can access them.

Three layers of system configuration:

  • hosts/modules/core.nix — minimal layer: user, SSH, fish, nix flakes/gc, locale. Enough to SSH in and rebuild.

  • hosts/modules/base.nix — imports core + day-to-day tools: avahi, mosh, direnv, CLI tools, build toolchains.

  • hosts/modules/desktop.nix, laptop.nix, personal.nix, sway.nix, niri.nix — additional layers for GUI hosts.

  • hosts/<name>/configuration.nix — host-specific config that imports from hosts/modules/

User-level (Home Manager):

  • alex/core.nix — base for all hosts (shell, git, tools, starship, fish, neovim)
  • alex/desktop.nix, alex/personal.nix — conditionally included per host

Hosts:

Host Type Notable
case Laptop WireGuard, ZeroTier, Syncthing, Sway/Niri
count Desktop AMD GPU + ROCm, Ollama
armitage Laptop systemd-boot, latest kernel
alt Proxmox LXC Media server (Jellyfin, *arr stack)
nightcity Proxmox LXC Minimal server
panam Proxmox LXC Forgejo instance
wintermute Proxmox LXC Reverse proxy (Caddy)
bootstrap Proxmox LXC Minimal template for cloning new hosts

Theme: Catppuccin Mocha (alex/colours/catppuchin-mocha.nix)

Stable channel: nixpkgs 25.11. Unstable packages are selectively overlaid via the nixpkgs-unstable input passed through specialArgs.