← Home
Living Infrastructure-as-Code

Self Hosted
& AI Powered
Homelab

I decided to run my home like an enterprise data center — with no DevOps background and no prior sysadmin experience. By partnering with Claude Code as a real-time infrastructure co-pilot, I built and now maintain a two-node Proxmox setup — a repurposed desktop PC as the storage node plus a dedicated dev node: hypervisors, smart home, automations, self-hosted photos, passwords, and NAS — without writing a single line of code alone.

This is the blueprint.

2
Proxmox Nodes
10
VMs + LXC
Daily
Backups
3
Git Repos
2
Active Workflows
0
Open Ports
663
HA Entities
ACT I PART ONE//THE SYSTEM RACK ONLINE
§ 01

Design Principles

01
Self-Hosted First
Everything runs on owned hardware. No cloud subscriptions for core infrastructure. Full control over data and services.
02
AI as a Partner
Claude Code is the infrastructure co-pilot — every build, fix, and improvement is done collaboratively with AI in real time.
03
Zero Open Ports
Cloudflare Tunnel for public services, Tailscale for private access. No port-forwarding on the router. Zero-trust by default.
04
Living Documentation
CLAUDE.md is always up to date. Every session starts with full context. Disaster recovery is a document, not a memory test.
05
Automate Everything
n8n classifies Gmail. Second Brain Bot files to Notion. Anything repetitive gets automated — no manual toil.
06
Resilient Backups
Daily Proxmox snapshots offloaded to Google Drive. Three copies kept. Restore procedure is documented and tested.
§ 02

Hardware

Storage Node · pve
  • Intel Core i7-3770 · 3rd gen · 4C/8T
  • 16 GB DDR3 · 2× 8 GB · maxed out
  • The original — a desktop PC found on the street
  • Hosts 6 guests + the NAS
Dev Node · pve2
  • Newer mini-PC · 12-thread CPU · 16 GB
  • Proxmox VE 9.2.3 · fast local NVMe
  • Runs heavier services — Immich gallery, Stirling PDF
  • Added to scale beyond the storage node
Storage & Drives
  • Samsung 870 EVO 500 GB SSD — OS & VMs
  • WD 1 TB HDD — NAS data
  • Seagate 500 GB HDD — backups
  • NVMe 500 GB — dev node fast storage
Backups & Extras
  • Daily 22:30 snapshot → 23:30 sync to Google Drive
  • 7 days + 3 latest retained · rclone
  • Sonoff Zigbee 3.0 USB dongle — smart home
  • Repo: LiadLevy92/Homelab
§ 03

Network Architecture

// NET-TOPO · 00.01 REV · 2026.06
  • CELLCOM FIBER
    1 Gbps Symmetric
    • CELLCOM GATEWAY
      Sagemcom · Router · DHCP · NAT · WiFi
      • HOME OFFICE
        STORAGE NODE · pve
        Intel i7-3770 · 16 GB DDR3
        Proxmox VE · 6 guests + NAS
      • HOME OFFICE
        DEV NODE · pve2
        12-thread · 16 GB · NVMe
        Proxmox VE 9.2.3 · 4 guests
      • LIVING ROOM SWITCH
        8-Port · 1G · Central Distribution
        • KIDS ROOM
          Cellcom STB
        • BEDROOM
          Cellcom STB
        • MAMAD
          Cellcom STB · Safe Room
§ 04

Services

ID Service Role Node Status
100 AdGuard Home DNS filtering · ad blocking pve · LXC running
101 Home Assistant Smart home · UPS · Bambu Lab · Zigbee pve · VM running
102 Docker Host n8n · Cloudflare Tunnel pve · VM running
103 Uptime Kuma Service monitoring pve · LXC running
104 NAS Samba file server · 1 TB shares pve · LXC running
105 Vaultwarden Self-hosted password manager pve · LXC running
110 devstore Dev NVMe storage · Samba pve2 · LXC running
111 Immich Photo gallery · AI face/object search pve2 · LXC running
112 claude-dash Claude Code usage analytics pve2 · LXC running
113 Stirling PDF Document conversion · Word↔PDF · OCR pve2 · LXC running
N8N — AUTOMATION
  • Automation engine — visual workflow builder
  • Webhook endpoint via Cloudflare Tunnel
  • OAuth callbacks via public Cloudflare endpoint
CLOUDFLARE — TUNNEL
  • Tunnel daemon — routes external traffic to services
  • n8n — public automation endpoint
  • Home Assistant — public smart home endpoint
  • Domain expires May 2027 · zero open ports
IMMICH — PHOTO GALLERY
  • Self-hosted Google Photos alternative
  • AI face & object recognition · timeline · albums
  • Dev node · CT 111 · photos stored on the NAS
VAULTWARDEN — PASSWORDS
  • Self-hosted, Bitwarden-compatible vault
  • Tailscale-only access · zero public exposure
  • Dedicated nightly backup · CT 105
NAS — FILE SERVER
  • Samba shares over LAN + Tailscale
  • 1 TB data drive · media, photos, dev files
  • Unprivileged LXC · CT 104
CLAUDE DASHBOARD — ANALYTICS
  • Self-hosted analytics for my Claude Code usage
  • Tokens, cost, models, sessions — all local
  • Dev node · CT 112 · Tailscale-only
STIRLING PDF — DOCUMENT TOOLS
  • Private Word↔PDF, merge, split, compress, OCR
  • Files never leave my server — no third-party upload
  • Dev node · CT 113 · Tailscale-only
TAILSCALE — VPN MESH
  • Private mesh network — zero config
  • Access Proxmox, HA, n8n from anywhere
  • No port forwarding required
ADGUARD — DNS
  • Router-level DNS — whole-home blocking, zero per-device config
  • Tailscale DNS override — ad-free on any device, anywhere
  • Custom rules for local service resolution
§ 05

What This Infrastructure Unlocks

The hard part is done. Two Proxmox nodes, smart home integration, automated email, self-hosted photos and passwords mean every future project has a solid foundation to build on — without starting from scratch.

AI In Your Pocket
live
Second Brain Bot turns anything — a thought, a voice note, a link, an image — into a structured Notion entry in seconds. From Telegram, from anywhere, in any language.
  • Accessible from any device via Telegram
  • Multi-user — isolated Notion workspaces per person
  • No manual filing, no forgetting — just capture and move on
Zero-Touch Inbox
live
InboxNinja on n8n classifies every incoming Gmail automatically into 7 categories. No SaaS subscription — runs entirely on the homelab, powered by Claude API.
  • Receipts extracted and structured automatically
  • Newsletters auto-archived, action items flagged
  • Runs 24/7 — inbox is always clean
Always-On Smart Home
live
Home Assistant runs locally with UPS battery backup — survives power cuts without interruption. Zigbee mesh, Bambu Lab monitoring, all managed locally with zero cloud dependency.
  • UPS integration — knows battery level, alerts on power loss
  • Bambu Lab 3D printer monitored with remote alerts
  • Zigbee mesh via Sonoff dongle — no cloud required
Remote Access — Anywhere
live
Tailscale VPN connects every node and service in a private mesh. Cloudflare Tunnel exposes only what's meant to be public. Zero open ports on the router.
  • Proxmox, Home Assistant, n8n — accessible from any device
  • No VPN app needed for public services — Cloudflare handles it
  • Full access from anywhere without compromising security
Ad-Free Everywhere
live
AdGuard Home runs as the network's DNS resolver — every device on the home network gets ad and tracker blocking with zero configuration. Tailscale extends this outside the home.
  • Router points to AdGuard — all devices covered automatically
  • Tailscale DNS override — same filtering on mobile and laptop, anywhere
  • No browser extension, no per-device setup required
My Own Google Photos
live
Immich runs on the dev node — a private photo gallery with AI face and object recognition. Phone auto-backup, timeline, and albums, with originals stored on the NAS. No subscription, no one else's cloud.
  • Automatic phone backup — like Google Photos, fully local
  • AI search by face, object, and place — runs on my hardware
  • Originals on the NAS, thumbnails on fast NVMe
Self-Hosted Passwords
live
Vaultwarden is a self-hosted, Bitwarden-compatible password vault. Reachable only over Tailscale — never exposed to the public internet — with its own dedicated nightly backup.
  • Works with the Bitwarden apps and browser extensions
  • Tailscale-only — zero public attack surface
  • Dedicated encrypted backup, separate from the VM snapshots
Private Document Toolkit
live
Stirling PDF on the dev node — convert Word↔PDF, merge, split, compress, OCR and more. Files never leave my server, so I never upload a document to a free online tool that wants my email in return. Tailscale-only.
  • Word↔PDF, merge, split, compress, image↔PDF — all local
  • OCR makes scanned documents searchable — English & Hebrew
  • No third-party upload, no email wall, no ads
ACT II PART TWO//THE PROJECTS OPERATOR AT CONSOLE
§ 06

Automations

N8N — AUTOMATIONS
  • InboxNinja — Gmail classifier · 7 categories · receipts, newsletters, action items
  • Daily Feedback Review — 09:00 daily · Notion → Claude API → Telegram
  • Hebrew analysis: user intent + proposed fix + complexity level
  • Model: claude-sonnet-4-6 · Claude API
  • active
HOME ASSISTANT — AUTOMATIONS
  • In development — coming soon
  • UPS alerts · smart home triggers
  • Bambu Lab · Zigbee device rules
§ 07

Second Brain

What It Does
  • Telegram bot that files anything into Notion using AI
  • Supports: text, voice, images, links, documents
  • Auto-categorizes and routes to the right Notion DB
  • Multi-user — each user has isolated Notion workspace
Architecture
  • Now runs on Vercel + Supabase — fully managed
  • Serverless functions · Supabase Postgres
  • Encrypted per-user tokens & isolated state
  • Telegram webhook → AI routing → Notion
Status
  • v2 — in production on Vercel
  • Multi-user · public waitlist open
  • Repo: LiadLevy92/Second-Brain
  • Onboarding: self-serve via Telegram
From Homelab to Cloud
  • Prototyped on the homelab — VM 102, Docker
  • Graduated to Vercel + Supabase for zero-maintenance scale
  • The homelab is where projects are born and tested
  • n8n still reviews its feedback daily (§ 06)
ACT III PART THREE//THE PROCESS CLAUDE AT CONSOLE
§ 08

The Claude Code Workflow

Every change to this homelab — a new VM, a config tweak, a bug fix — goes through the same loop. I describe what needs to happen. Claude Code makes the edits, the site updates, and everything stays documented.

1
Describe the change in plain language — Hebrew or English, doesn't matter
Me
2
Surgical edits to all affected files — only the specific lines that changed
Claude Code
3
Review in browser — check the result, request adjustments if needed
Me
4
Git push to GitHub — change is committed and infrastructure state is locked in
Me
5
Cloudflare Pages auto-deploys — site live within seconds, no manual step
Cloudflare
CLAUDE.md Is the Memory
Every session starts by reading CLAUDE.md — full homelab context, no re-explaining. VM list, network layout, active projects, recent changes. The entire system state is in one file, always current.
Docs Ship With the Change
CLAUDE.md is updated in the same session as any change. The documentation is never out of sync with reality. The changelog at the bottom of CLAUDE.md is the audit trail.
Works in Any Language
I describe changes in Hebrew or English — often mid-sentence switching. Claude Code understands both and operates entirely in the homelab context without losing track.
No DevOps Background Required
This entire homelab was built without prior experience in Proxmox, Docker, n8n, or networking. Claude Code fills the knowledge gap in real time — every command explained, every risk flagged.
§ 09

Why This Works — The Secret Sauce

CLAUDE.MD Is Everything
The project instruction file gives Claude Code full homelab context at the start of every session — no re-explaining, no starting from scratch.
  • Who I am: product manager, not a developer — explain every command as you go
  • Safety rails: alert before risky changes, never rewrite whole sections
  • Change protocol: update CLAUDE.md only on confirmed changes, never during brainstorming
  • Full index: every VM, every file, every path — Claude knows exactly where everything lives
  • Changelog: every session ends with dated entries — full audit trail of what changed and why
The Multiplier Effect
What makes an AI-assisted homelab fundamentally different from doing it alone — it's not just a faster search engine.
  • Instant recall: "Which VM runs the bot?" — answered in seconds from CLAUDE.md
  • Cross-domain reasoning: changing Docker config? Claude checks all affected VMs and services
  • Incident response: something breaks at midnight → root cause + fix + docs in one session
  • No expertise needed: learned Docker, Proxmox, n8n by doing — Claude filled every gap
  • Always current: the docs update themselves — a git push is a documentation update
The Killer Feature
Ask anything.
Get the right
answer instantly.

Every Claude Code session opens with complete knowledge of my entire infrastructure — every VM, every container, every service, every path. No searching old notes. No "I think it was on VM 102?"

Ask a question in plain language and get an answer that accounts for my specific setup, with the exact next step to take.

~ homelab-docs — claude code
$ "Which node runs Immich, and where are the photos?"
› Dev node pve2, container CT 111. Originals live on the NAS (CT 104); thumbnails and the database stay on the dev node's fast NVMe.
$ "My n8n webhook stopped receiving calls."
› Check cloudflared on VM 102. If the tunnel is down, restart it. n8n listens on :5678. Webhook goes through the Cloudflare Tunnel — verify the tunnel is active first.
$ "Home Assistant went offline — what do I check?"
› VM 101, HAOS. Open Proxmox console — is the VM running? If power loss: UPS should have alerted. If no alert, check VM 100 (AdGuard) — DNS might be the issue, not HA itself.
§ 10

Planning — Next on the Build List

My foundation is stable. Here's what I'm building next — ordered by priority and readiness.

VLAN Segmentation
  • Upgrade to a managed switch that supports 802.1Q VLANs
  • Replace Sagemcom gateway with a VLAN-capable router
  • Separate networks: IoT · main · management · cameras
  • Isolate smart home devices from the main LAN
HA Automations
  • Build out presence detection — room-level awareness
  • Power management automations via Zigbee smart plugs
  • Climate and lighting schedules tied to presence
  • Alerts and notifications pipeline via Telegram
More n8n Workflows
  • Expand beyond Gmail classification
  • Calendar sync and smart reminders
  • Notification routing — HA events → Telegram
  • Data pipelines for personal analytics
Home Surveillance
  • NVR setup with local AI detection (Frigate)
  • IP cameras — key entry points and outdoor zones
  • Motion alerts routed to HA and Telegram
  • Fully local — no cloud, no subscription
§ 11

Living Documentation System

Every part of this homelab is documented. The documentation updates in the same session as the change — never out of sync, never from memory.

CLAUDE.MD
Project Brain
Full homelab context — VM list, network, active projects, changelog, recovery steps. The single source of truth Claude reads at session start.
CHANGELOG
Change Log
Every significant change, dated, with context — inside CLAUDE.md. The audit trail for what changed, when, and why.
NETWORK
Network Topology
Physical and logical layout of the home network — ISP, gateway, switch, server, and all connected rooms. Visualized on this site.
GITHUB
Homelab Repo
LiadLevy92/Homelab — CLAUDE.md, crontab, backup scripts, and this site's source. Every push auto-deploys via Cloudflare Pages.
GITHUB
Second Brain Repo
LiadLevy92/Second-Brain (private) — full bot source, Docker Compose, DB schema, and onboarding flow for multi-user deployment.
THIS SITE
Live Documentation
This site is the documentation. Built with Astro, styled from scratch, updated via Claude Code. A git push is a doc update.
§ 12

The Journey — How It Was Built

From a desktop PC found on the street to a running homelab with smart home, AI automation, and a Telegram bot — here's how it happened, one phase at a time.

PHASE 1
Foundation
  • Found a broken desktop PC — i7-3770, 16 GB DDR3, three drives
  • Installed Proxmox VE — first hypervisor, first VM, first panic
  • Spun up the first guests: AdGuard, Home Assistant, Docker Host, Uptime Kuma
  • No DevOps experience — Claude Code was the instructor
PHASE 2
Smart Home
  • Home Assistant on HAOS — fully local, no cloud
  • Zigbee mesh via Sonoff USB dongle — lights and sensors
  • UPS integration — power-cut proof, battery alerts
  • Bambu Lab 3D printer monitoring with remote alerts
PHASE 3
Zero-Trust Network
  • Tailscale mesh across every guest — private access from anywhere
  • Cloudflare Tunnel — public endpoints with zero open ports
  • AdGuard DNS — ad filtering for every device on the network
  • Domain liad-dev.com — expires May 2027
PHASE 4
Automation Engine
  • n8n on Docker Host — visual workflow builder
  • InboxNinja: Gmail → Claude API → 7-category classifier
  • Receipts structured, newsletters archived, action items flagged
  • Runs 24/7 — inbox is always clean without touching it
PHASE 5
Second Brain
  • Built a Telegram bot that files anything into Notion with AI
  • Text, voice, images, links — all routed to the right Notion DB
  • PostgreSQL with Fernet encryption for user data
  • Graduated off the homelab → now in production on Vercel + Supabase
PHASE 6
Docs as Code
  • CLAUDE.md as the living memory — every session starts here
  • This site as the documentation layer — built in one session
  • Astro + Claude Code — a git push is a doc update
  • Changelog at the bottom of CLAUDE.md is the audit trail
PHASE 7
Second Node
  • Added a dedicated dev node (pve2) — Proxmox VE 9.2.3
  • Split roles: the street PC becomes the storage node, new box is dev
  • Fast local NVMe for heavier services
  • Both nodes on one LAN and one Tailnet
PHASE 8
Self-Hosted Suite
  • NAS — Samba file server on a 1 TB drive
  • Vaultwarden — self-hosted passwords, Tailscale-only
  • Immich — private Google Photos replacement on the dev node
  • Replacing cloud subscriptions, one service at a time
§ 13

Recovery from Scratch

01
Install Proxmox on new hardware
02
Download backups from Google Drive My Server/proxmox-backups
03
Restore storage-node guests via Proxmox UI — 100, 101, 102, 103, 104, 105
04
Install rclone curl https://rclone.org/install.sh | bash
05
Configure rclone rclone config → gdrive → Google Drive
06
Restore backup script + crontab cp backup-to-gdrive.sh /usr/local/bin/ && crontab ~/homelab/crontab.txt
07
Configure Tailscale on each VM — connect to your account
08
Verify Cloudflare Tunnel is active on VM 102 — test public endpoints
09
Restore NAS (CT 104) — bind-mount the data drive, Samba share over LAN + Tailscale
10
Restore Vaultwarden (CT 105) — vault data + dedicated nightly backup Tailscale-only access
11
Set up the dev node (pve2) — install Proxmox, then restore devstore (110), Immich (111), claude-dash (112)
// EOF
Built Different

I'm an electrical engineering student — not a sysadmin, not a developer, not someone who does this professionally. I built and now maintain a self-hosted homelab across two Proxmox nodes — smart home, AI automations, self-hosted photos, passwords, and a NAS — fully documented, version-controlled, and continuously extended. All of it built collaboratively with Claude Code, one session at a time. No prior experience required. Just curiosity and a PC someone threw out.

Proxmox Home Assistant n8n Docker AdGuard Tailscale Cloudflare Telegram Notion Python Astro Claude Code Immich Vaultwarden Samba LXC Vercel Supabase Zigbee Git