My side-server
that thinks for itself.
Where I prototype agentic AI in the open. A self-hosted stack of containers — orchestrated with Portainer, exposed through a VPN + reverse proxy, and wired up with n8n & Claude.
I learn by building real systems at home.
My homelab is where the AI thesis becomes practice. Multiple Docker containers managed through Portainer, wrapped behind a VPN and reverse proxy, and stitched into agentic workflows with n8n + Claude. It's small, but it's running 24/7 — and every weekend, it gets a new capability.
I wanted a sandbox where I could break things, ship things, and watch my own systems run — the homelab is exactly that.— Hemant
From the public internet to a thinking agent.
Every request flows the same way — through the VPN/proxy, into Portainer-managed containers, and (where it matters) up into the agentic AI layer that decides what to do next.
Internet
Public
HTTPS
VPN + Proxy
WireGuard
Nginx PM
Portainer
Containers
under control
Containers
App, DB,
queue, cache
n8n
Workflow
orchestrator
Claude + MCP
Reasoning +
custom tools
A snapshot of what's online.
The single pane of glass. Manages every container in the lab — health, logs, stacks, volumes — without ever touching the CLI.
// orchestration · web uiReverse proxy in front of every service. TLS auto-renewed, internal subdomains, access lists. The lab is internet-facing, but only on my terms.
// tls · ingress · routingZero-trust ingress. Admin surfaces (Portainer, n8n, Grafana) are only reachable via VPN — never exposed to the open web.
// vpn · zero-trustMy agent orchestrator. Multi-step workflows chaining Claude calls, MCP tools, webhooks, schedules, and human-in-the-loop steps. 14 flows running.
// agentic · workflows · webhooksCustom Model Context Protocol servers expose real tools (DB, files, search, internal APIs) to Claude. Each one is small, typed, and tested.
// claude tools · stdio + httpA thin gateway in front of the Anthropic API — adds auth, logging, rate limits, and a unified retry/streaming layer for everything in the lab.
// llm gatewayStateful backbone. Postgres holds app data & n8n state; Redis handles caching and the agent queue. Boring, on purpose.
// data · queue · cacheIf it runs in the lab, it's scraped. Dashboards for container health, agent latency, and the bills my LLM proxy is racking up.
// observabilityWatchtower auto-pulls image updates on a schedule. Vaultwarden keeps all the lab secrets self-hosted and out of any cloud vault.
// updates · secrets