Building The Coe Lab

The story behind building a personal technology laboratory.
How I built a comprehensive homelab infrastructure with AI integration, automated monitoring, and self-hosted services—a journey from concept to reality over six months of iterative development.
The Vision
The Coe Lab started as a simple idea: what if I could build a personal technology laboratory that combines infrastructure, AI, and automation into a cohesive system? Not just a collection of Docker containers and scripts, but an integrated environment where AI manages infrastructure, infrastructure supports AI, and automation handles the routine work that consumes time without adding value.
Six months later, here's what I've built—and what I've learned about the intersection of AI, infrastructure, and personal productivity. The journey has been as much about philosophy as about technology, teaching me lessons about system design, automation principles, and the right balance between human control and machine autonomy.
Infrastructure Foundation
Everything runs in Docker containers on a Linux server with flexible storage virtualization, application hosting, and container management. The hardware is modest by homelab standards but more than sufficient for the workload. What matters is the software architecture—every service is containerized, every configuration is version-controlled, and every deployment is reproducible from a single Docker Compose file.
Key benefits of this approach include rapid recovery from hardware failures (rebuild from config files in under an hour), easy experimentation with new services (spin up, test, tear down), consistent environments across development and production, and the ability to migrate the entire stack to new hardware without rebuilding from scratch. These aren't just theoretical benefits—I've tested disaster recovery, and the system can be fully restored from backups and configuration files in under two hours.
Storage is managed through Unraid, which provides flexible disk management without requiring identical drives. This is particularly valuable for a homelab where hardware budget is limited and mixed-drive configurations are the norm. The Docker integration in Unraid makes container management straightforward, and the community support means solutions to common problems are readily available.
The AI Layer
What makes The Coe Lab different is the AI layer that ties everything together. OpenClaw acts as the central nervous system, providing intelligent monitoring, automated responses, and a natural language interface to the entire infrastructure. This isn't just a chatbot sitting on top of some APIs—it's a deeply integrated system that can read system state, make decisions, and take actions.
Hourly Health Checks
Every hour, OpenClaw checks: Docker container statuses across all services, disk usage and growth trends, network connectivity to external services, SSL certificate validity, backup status and freshness, and system resource utilization (CPU, memory, network). Results are posted to Discord's #TCL channel. If something's wrong, I know immediately—not when I happen to log in and notice a problem.
Media Management Automation
Every 30 minutes, the media manager: checks for completed downloads, organizes files according to naming conventions, triggers searches for missing watchlist content, cleans up orphaned and temporary files, and updates the media library. On its first run, it cleaned up 10 dead torrents and triggered searches for 12 movies and 5 TV shows. That's hours of manual work eliminated in a single automated cycle.
Remote Node Management
My Windows gaming PC (LenovoGaming) runs OpenClaw Node for browser automation. If it goes offline: the health check detects the disconnection, attempts a remote reboot via WinRM, verifies the node comes back online, and re-enables browser automation capabilities. This has saved me multiple trips to the basement to manually reboot the machine—a small but meaningful quality-of-life improvement that demonstrates the value of automated recovery.
Memory and Context
The AI assistant needs context to be useful. Neo4j stores: people and their relationships, projects and their current status, services and their configurations, goals and their progress, events and important dates, and lessons learned from past incidents. This graph-based memory enables conversational queries like 'What's the status of the website project?' or 'When is Jeni's birthday?' with accurate, contextual answers.
The graph structure is particularly powerful for understanding dependencies. When a service goes down, I can query which other services depend on it and assess the blast radius immediately. When I'm planning a change, I can see what might be affected before I make it. This kind of relational understanding is impossible with flat-file memory systems and is one of the key advantages of using a graph database for AI memory.
Memory ingestion is automated. Markdown files in the workspace are parsed and ingested into Neo4j, creating nodes and relationships automatically. This means my documentation doubles as AI memory—when I write something down, the AI knows it too. This eliminates the friction of having to manually update multiple systems.
The Website
The Coe Lab website (thecoelab.com) serves multiple purposes: it's a portfolio of my work, a blog where I share what I learn, a testing ground for web technologies, and a public face for the project. Built with Next.js 14, TypeScript, and Tailwind CSS, deployed as a static export to Nginx. The CMS is Payload, running on a DigitalOcean droplet, providing a clean admin interface for content management.
The website is itself integrated into the AI system. OpenClaw can draft blog posts, check analytics via the Cloudflare API, monitor uptime, and even push content updates through the database. This tight integration between content creation, publishing, and analytics creates a workflow that would be impossible with traditional disconnected tools.
Design Principles
Several core principles guided the development of The Coe Lab and continue to shape its evolution. These aren't just theoretical guidelines—they're practical rules that have been validated through real-world operation.
Automate the Repetitive
If I do something twice manually, it gets automated. This applies to media management, health checks, backups, and even reboots. The threshold is deliberately low—two times is enough to justify the automation investment. This has resulted in a system where the vast majority of routine operations happen without my intervention, freeing my time for creative and complex work.
Design for Recovery
Systems should recover from failures automatically. The node reboot workflow is a perfect example—no human intervention needed. But beyond automated recovery, the entire system is designed for rapid manual recovery. Configuration is version-controlled, data is backed up regularly, and the full stack can be rebuilt from scratch in under two hours. This isn't just about minimizing downtime—it's about peace of mind.
Observability First
Everything is monitored and logged. If something breaks, I want to know why. Grafana dashboards show trends over time, not just current status. This historical perspective is crucial for understanding degradation patterns and predicting future issues. When disk usage is growing slowly over weeks, I can address it before it becomes a crisis.
Document Everything
Every service, script, and configuration is documented in markdown. Future-me (or anyone else) should be able to understand how things work. This documentation doubles as AI memory through the automated ingestion process, creating a virtuous cycle where better documentation makes the AI more capable, and a more capable AI reduces the documentation burden by generating more content automatically.
Security by Default
Authelia protects all external-facing services. Tailscale provides secure remote access without exposing ports. All credentials are stored securely and rotated regularly. The principle is simple: if a service doesn't need to be public, it isn't. If it does need to be public, it's protected by authentication and monitored for abuse.
What's Next
The Coe Lab is never 'done.' Current projects in the pipeline include expanding the AI's capabilities with more sophisticated tool use, integrating smart home sensors for environmental monitoring, building a proper monitoring dashboard for mobile, exploring local model hosting with GPU hardware upgrades, and improving the backup system with automated restore testing.
The journey of building The Coe Lab has taught me that the most important ingredient isn't hardware, software, or even technical skill—it's the willingness to iterate. Start with something simple, make it work, then improve it. Each automation, each integration, each monitoring check builds on the last. Six months ago, this was just an idea. Today, it's an infrastructure that runs itself while I sleep.
If you're considering building something similar, my advice is to start with one thing you want to automate and build from there. Don't try to design the entire system upfront—you'll learn too much along the way for any initial design to survive. Let the system evolve organically, driven by real needs rather than theoretical requirements. The result will be better than anything you could have planned.
Related Posts
When Hackers Defrost the Food Supply: The Hidden Risk in Smart Refrigeration
A cyberattack on European supermarket refrigeration shows how connected operational technology can turn a routine IT breach into food loss and physical disruption.
The Zod 4.6.6 Scare: A Practical npm Supply-Chain Response
A suspicious Zod commit triggered malware fears without proof of a poisoned npm release. Here is how teams should investigate, contain, and improve dependency security.
Talorys Turns Cloudflare’s Free Tier Into a Personal AI Agent
Talorys runs a private personal AI assistant on Cloudflare Workers, Durable Objects, and Workers AI. Here is what its architecture gets right—and its limits.