2.2 KiB
2.2 KiB
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Overview
Personal NixOS flake-based configuration using Numtide Blueprint for multi-host management. Manages three hosts with Home Manager for user environments.
Commands
# Rebuild and switch the current host
sudo nixos-rebuild switch --flake .#$(hostname)
# Test without applying
sudo nixos-rebuild test --flake .#$(hostname)
# Apply home-manager for a user
home-manager switch --flake .#julien@LAPTOP-032
home-manager switch --flake .#jhemono@gwiad
# Update flake inputs
nix flake update
nix flake update nixpkgs-unstable # single input
Architecture
Blueprint auto-discovers hosts and modules — no manual registration needed.
flake.nix (Blueprint orchestrator)
modules/
nixos/
base.nix — common system settings (bootloader, timezone, Nix store GC, system packages)
jhemono.nix — jhemono user account + SSH authorized keys
home/
user.nix — custom options: user.name, user.email
base.nix — shell (Fish), editor (Helix)
git.nix — Git + Jujutsu + GitHub CLI
hosts/
gwiad/ — ThinkPad T14 AMD workstation, Sway/Wayland
sesame/ — home server (Forgejo, Nextcloud, Mailu, Nginx, sops-nix secrets)
LAPTOP-032/ — work laptop, GNOME
Hosts
gwiad — personal workstation
- nixos-hardware:
lenovo-thinkpad-t14-amd-gen3 - Sway + Waybar, btrbk snapshots, syncthing
sesame — home server (*.hemono.fr domains)
- Services: Forgejo (
git), Nextcloud (suite), Mailu (mail), Transmission, Syncthing - All HTTPS via ACME; SSH-key-only access
- Secrets via sops-nix (private
mysecretsrepo)
LAPTOP-032 — work laptop
- GNOME/GDM, Docker (rootless), claude-code (from
nixpkgs-unstable), UV, Node.js
Key Conventions
nixpkgs-unstableoverlay is used when a package isn't available or outdated in the stable channel (e.g.,claude-code)- Home Manager modules receive user info via the custom
user.name/user.emailoptions defined inmodules/home/user.nix - Host-specific files live entirely under
hosts/<hostname>/; shared logic goes inmodules/