Skip to main content

Command Palette

Search for a command to run...

LabSecure Control Plane: Building Observability and Container Management for My Home Lab

Continuing from “The Pi Guardian,” I took my home network from secure to observable.

Updated
3 min read

🏗 Introduction

In my previous post — The Pi Guardian: Defending My Home Network with Nginx and Automation — I explained how I used two Raspberry Pis, Nginx, and Cloudflare to secure and automate incoming traffic to my self-hosted applications.

That setup worked beautifully until the number of workloads grew.
I could deploy and access my services securely, but I couldn’t easily track performance, container health, or system metrics across devices.

That’s when I started the LabSecure Control Plane project — an effort to unify monitoring and management for my home lab infrastructure.

⚙️ The Problem

With multiple Raspberry Pis and a TrueNAS SCALE server running different workloads, visibility quickly became a challenge:

  • Which containers are running where?

  • How much CPU/memory is each consuming?

  • What happens if one node goes down?

Manual SSH logins and docker ps weren’t scalable.

🧩 Phase 1 Goals

  • Centralized Container Management → control all hosts from one dashboard.

  • Unified Observability Pipeline → collect and visualize host + container metrics.

  • Automated Deployment → avoid manual tool installs via Ansible.

🏗 Architecture Overview

Figure 1: Architecture diagram showing the LabSecure Control Plane with TrueNAS SCALE as the control plane and two Raspberry Pis as workload nodes.

🖥 Multi-Host Container Management with Portainer

Portainer CE provides a unified interface to manage Docker containers across all hosts.

  • Server runs on TrueNAS SCALE

  • Agents on both Raspberry Pis

  • Direct TCP connection for real-time status and logs

Figure 2: Portainer CE managing containers across multiple workloads — both Raspberry Pis connected and active.

📈 Observability Stack with Prometheus

Metrics are collected via Node Exporter and cAdvisor on each Pi, then aggregated in Prometheus on TrueNAS.
This setup tracks CPU, memory, disk I/O, and container resource usage in real time.

Figure 3: Prometheus targets confirming all exporters and monitoring agents are active across workloads.

🔧 Automation with Ansible

All components are deployed using Ansible playbooks — no manual SSH installs needed.
Roles handle Portainer Agents, Node Exporters, and cAdvisor configuration, making redeployment idempotent and repeatable.

Example command:

ansible-playbook playbooks/setup-phase1.yml --tags monitoring

💡 Key Takeaways

  • Observability builds confidence — you can’t secure what you can’t see.

  • Automation scales time, even in a home lab.

  • DevOps principles translate well from enterprise to personal projects.

🚀 What’s Next (Phase 2)

The next phase focuses on building a Node.js/Express backend that integrates with Portainer and Prometheus APIs, storing metrics in SQLite and visualizing them through a React dashboard.

Stay tuned for that update — and if you’re building something similar, I’d love to compare notes!

🏁 Closing Thoughts

Together with The Pi Guardian, this project marks my journey from securing to observing my infrastructure — step by step turning a few Raspberry Pis and a NAS into a miniature, production-grade lab.