nix-config/garden.md

2.6 KiB

garden

Hosts in this repo are named after plants and flowers.

hosts

poppy (active)

  • role: MacBook Air M1, personal/work machine
  • system: nix-darwin, aarch64-darwin
  • location: daily driver

muscari (planned migration)

  • role: linux server, k3s cluster
  • system: NixOS, x86_64-linux
  • location: iscg infra

rosemary (planned)

  • role: backup VM
  • system: NixOS, x86_64-linux

structure

  • flake.nix — entry point, dispatches mkNixos and mkDarwin per host
  • hosts/<name>/default.nix — per-host config
  • hosts/common/default.nix — shared NixOS config
  • hosts/common-darwin/default.nix — shared darwin config
  • home/default.nix — shared home-manager config for user michaotic (plan to migrate to mikl later)
  • secrets/ — sops-encrypted secrets per host

documentation

notes are split by topic under docs/:

  • docs/structure.md — high-level overview, where things go
  • docs/poppy.md — MacBook specific (homebrew, system defaults)
  • docs/muscari.md — server + k3s specifics
  • docs/shell.md — zsh, pure prompt, plugins
  • docs/terminal.md — kitty + catppuccin theme
  • docs/cheatsheet.md — quick commands reference

when adding a new host: copy docs/structure.md template, document hostname, role, packages unique to it.

migrations

  • nix-config-legacy/ — previous muscari-only config (preserved for reference)

future plans

username migration

currently using michaotic as username (historical). plan to migrate to mikl across all hosts for consistency.

why not now:

  • macOS: changing username requires careful handling of home folder, keychain, permissions
  • linux: easier, but better to do in one coordinated change

when: after setting up proper backups and testing migration procedure

rosemary setup

currently flake.nix has rosemary commented out. need to:

  • add disk config (likely similar to muscari)
  • add users.users.michaotic.openssh.authorizedKeys
  • test nix flake check

documentation improvements

  • create docs/bootstrap.md — manual setup guide for fresh device without nix (emergency fallback)
    • list all CLI tools and how to install via brew/pnpm
    • list all system defaults that need manual configuration
    • explain which tools are nix-managed vs brew-managed
  • create docs/adding-host.md — checklist for adding a new host
  • create docs/secrets.md — sops-nix setup when we get there
  • add migration notes to docs/structure.md as we learn patterns
  • screenshots/notes for things that aren't obvious (e.g. dock layout)