I just wrapped up a two-session infrastructure audit with Claude Code. Here’s what we accomplished:
Security: Credentials rotated, API locked to Tailscale, all Hetzner servers firewall-hardened, DOCKER-USER fixed, port scan verified, Tailscale ACL enforced, swarm tokens rotated.
Organization: 8 servers tagged (location + role), regions set, production boundary documented, SSH config complete for all hosts.
Deployment: 20 git-based stacks confirmed, monorepo pattern validated, compose template created, LFS CI pipeline via GitHub Actions + GHCR.
LFS: 22 services visible, opt-out context model live (2 labels minimum instead of 6-8), Node-RED BFF and WordPress sites added.
Swarm: zigbee2mqtt deployed as swarm service with NFS + network adapter failover. Decision rule documented.
That’s 144 tasks across two OpenSpec changes. A full fleet audit, security hardening, organizational restructuring, deployment pipeline improvements, a dashboard code change, CI/CD setup, swarm migration, and documentation — in two sessions.
Not “AI replaced my job.” More like: I had a conversation about what my infrastructure should look like, and then we just… did it. Together. While I answered questions and made decisions, the heavy lifting — SSH into servers, write iptables rules, check port scans, edit compose files, push to GitHub, verify services — happened in the background.
This is what’s possible when you stop thinking of AI as a chatbot and start thinking of it as a collaborator with access to your tools.
// end