Archived
- IPA now runs at 192.168.2.253 (previously shown as .138 in install docs) - cloud-init nameserver and nmcli DNS during install use .254 (gateway) since IPA isn't running yet at that point - --forwarder updated to 192.168.2.254 (LAN gateway, Pi-hole is gone) - Remove Step 7 (Pi-hole DNS forwarding config) from install.md - Delete obsolete freeipa/docs/pihole-dns.md and configure-pihole-dns.sh - Update CLAUDE.md section count and freeipa/ guidance entry - Update freeipa/README.md IP and DNS forwarding description Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2.5 KiB
2.5 KiB
CLAUDE.md
Guidance for Claude Code working in this repo. These instructions OVERRIDE any default behaviour and must be followed exactly.
Repo purpose
Configuration toolsets and docs for Wayne's Debian-based LAN machines.
Three sections currently exist: proxmox/ (Proxmox VE hosts),
pihole/ (Pi-hole DNS/DHCP), and freeipa/ (FreeIPA identity
management). Each has its own README.
Safety rules (apply everywhere in this repo)
- Never commit secrets. SSH private keys, passwords, hashes, TOTP
seeds, API tokens, or wifi passphrases must not appear in committed
files. The CI pipeline (
scripts/check-secrets.sh) enforces this on every push; the pre-commit hook (scripts/install-hooks.sh) catches it locally before it reaches the remote. pihole/pull-config.shauto-sanitises sensitive fields frompihole.tomlon every pull. If you write config topihole/config/by any other means, runpihole/sanitize-config.shon the result before committing.- Scripts that SSH into live machines make real changes. Don't run
pihole/apply-config.shagainst a production Pi-hole, or any script inproxmox/scripts/againstpve1, without an explicit same-session go-ahead from the operator. The section-specific CLAUDE.md files spell out the per-host guardrails in detail.
Section-specific guidance
- Proxmox: see
proxmox/CLAUDE.md— coverspve1(production, off-limits by default) vs.pve-test(sandbox, Claude's default target), per-host authorisation scope, and network-surgery hazards. - Pi-hole:
pihole/has no live-host guardrails beyond the secret rules above.apply-config.shis the only script that touches a live host; treat its<dest-host>argument as production unless you're explicitly testing on a throwaway instance. - FreeIPA:
freeipa/documents and scripts for the FreeIPA identity management server (domain-controller.sweet.home, VMID 108 onpve1). All scripts that SSH into the server are production operations — treat them as off-limits without an explicit same-session go-ahead.
Adding a new machine type
Create a new top-level directory (e.g. nginx/, wireguard/) with:
README.md— purpose, quick-start, and current statusCLAUDE.md— host-specific guardrails (which hosts are production, what requires explicit authorisation, what must never be committed)scripts/and/orconfig/as needed
Update the root README.md layout table and this file's
"Section-specific guidance" list when you do.