Claude AI Used to Set Up Proxmox Home Server via SSH

A developer documented using Claude AI over SSH to fully configure a Proxmox VE 9.1 home server running on an Intel i7-6700K with 64GB RAM. The AI handled the entire setup conversationally in one session.
Storage Configuration
Claude performed storage cleanup by identifying and removing stale NFS mount points and orphaned Proxmox storage entries (vm_disks, vm_disks_boot, vmdisk1). It formatted three NTFS drives (2x 4TB HDDs + 1x 1TB SSD) as ext4, adding them to Proxmox storage with proper fstab entries using UUIDs. The AI installed parted when needed and converted the two 4TB HDDs into a ZFS mirror pool called photos_store using disk-by-id paths, later renaming it from "tank" to "photos_store" via export/import.
Security Hardening
Claude conducted a security audit finding 67 pending security updates, which it applied including a kernel upgrade from 6.17.4 to 6.17.9. It flagged disabled firewall, SSH root login with password, and lack of fail2ban. The AI installed and configured fail2ban with two jails: sshd (bans after 3 failed attempts for 1 hour) and proxmox (protects web UI login). It also addressed a CPU vulnerability (gather_data_sampling) by updating Intel microcode, though this was limited by Skylake hardware constraints.
Docker and Immich Deployment
First attempt installed Docker directly on the Proxmox host with ZFS-backed storage datasets for Immich (separate datasets for uploads, database, model-cache with optimized recordsizes). Permission issues arose with the vectorchord Postgres image requiring privileged: true and API worker getting EACCES on node spawn due to Docker's security profile. After realizing this setup was invisible to Proxmox UI, Claude removed Docker from the host, created an Ubuntu Server 24.04 VM (4 CPU, 16GB RAM, 64GB disk on SSD), set up NFS to share the ZFS pool, installed Docker in the VM, and deployed Immich successfully with all four containers healthy.
Fan Control
To address server noise, Claude installed lm-sensors and fancontrol, found the NCT6793D chip blocked by ACPI, added acpi_enforce_resources=lax kernel parameter, dealt with boot issues, and set all 6 motherboard fan channels to 30%. Discovering the AMD Vega 64 GPU fan was the primary noise source, it set GPU fan to ~16% (1011 RPM) from 100% (4700 RPM), creating a systemd service to persist settings across reboots.
📖 Read the full source: r/ClaudeAI
👀 See Also

Building a Generative Coloring Book App with Claude as Senior Dev
An intermediate iOS developer details how Claude helped catch edge cases and implement safety guardrails while building a SwiftUI coloring book app for kids.

Debugging a Tiny AI Agent on an Old Nokia Phone: 18 Attempts to Success
A developer documented 18 failed attempts to run Picobot, a ~12 MB AI agent, on an old Nokia phone via Termux, testing free models, OpenRouter, and Groq before settling on Google's Gemini Flash API for a fast, reliable setup.

Developer Builds Cloud Certification Quiz App Using Claude AI
A developer built Kwizeo, a cloud certification quiz app for AWS, GCP, and Azure using Claude AI to generate questions, design progression logic, and accelerate development.

How to Use Claude Code Effectively: A Developer's Experience Building a Full SaaS App
A developer with SaaS experience since 2021 built a complete spaced repetition app called codefluent.app using Claude Code, emphasizing that success depends on writing detailed technical specifications rather than vague prompts. The project used SvelteKit, PostgreSQL with Drizzle ORM, Better Auth, OpenRouter, Stripe, CodeMirror 6, Tailwind v4, and Railway.