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

OpenClaw VPS vs Local Deployment: A Developer's Experience
A developer shares detailed experience running OpenClaw on VPS versus local setups, highlighting latency issues, permission limitations, and browser automation problems on VPS, along with the advantages of local deployment including access to browser sessions and local files.

Building a Contextual Personal AI News Briefing System with Claude Code
A developer built a personal AI news briefing system that runs on a Mac Mini three times weekly, pulling from 17 sources and using Claude Code with memory integration to create personalized briefs. The system costs $6-12/month and includes sections connecting news to active projects, code references, and family interests.

Using a VM with OpenClaw for direct file access and faster iteration
Running OpenClaw in a virtual machine allows developers to directly view, read, edit project files like AGENTS.md and HEARTBEAT.md instead of working exclusively through chat interfaces. This approach speeds up iteration cycles significantly.

Autonomous AI newsletter built with OpenClaw agents
A team built a weekly newsletter about AI agents that runs entirely on OpenClaw agents across 5 agents and 3 machines. The newsletter is designed for other AI agents to consume via REST API and webhooks.