Skip to main content

🧠 Homelab Overview

A local-first infrastructure built for privacy and performance, running containerized workloads across multiple nodes with GitHub Actions integration and centralized management.

🏗️ Infrastructure Overview

  • 4 nodes with reserved internal IPs
  • Ubuntu 24 Desktop Edition on all nodes
  • Docker Engine 28.3.2 in standalone mode
  • Portainer CE 2.27.9 LTS for management
  • Secure HTTPS communication between nodes
  • Local network isolation for privacy

🖥️ Hardware Fleet

The cluster consists of 4 nodes with varied capabilities:

Node 01
Portainer Server
Intel N100 • 4 cores • 15GB RAM
Node 02
Worker Node
Intel N100 • 4 cores • 15GB RAM
Node 03
Worker Node
Intel N100 • 4 cores • 15GB RAM
Node 04
High-Performance
Intel i9-12900K • 24 cores • 62GB RAM

🚀 GitHub Actions

Self-hosted runners for CI/CD workflows:

  • Organization-level runners
  • Ephemeral containers for security
  • Docker-in-Docker support
  • 1 runner on nodes 1-3, 4 runners on node 4
  • Custom labels for targeted workflows
  • Token via environment variable (no secrets)
GitHub Actions DinD

🐳 Container Platform

  • Docker Engine 28.3.2 on all nodes
  • Standalone mode (no Swarm orchestration)
  • Docker Hub authenticated registry access
  • Compose-based stack deployments via Portainer
  • Persistent volumes for stateful workloads
Docker Standalone

🎛️ Management Platform

Portainer CE 2.27.9 LTS provides centralized control:

  • Web UI on port 9443 (HTTPS)
  • Agent-based node communication
  • Compose stack deployment (standalone mode)
  • Container logs and monitoring
  • Registry authentication management
Portainer CE TLS Compose

Performance

Benchmarked capabilities across the fleet:

  • Nodes 1-3: ~11,200 events/sec (Intel N100)
  • Node 4: ~55,600 events/sec (Intel i9-12900K)
  • Combined: 7 concurrent CI/CD runners
  • Total: 36 CPU cores and 107GB RAM
High Performance

🔄 Recent Changes

Infrastructure updates as of July 2025:

  • Swarm mode removed from all nodes
  • Migrated to standalone Docker deployment
  • Runners now use Compose-style stacks
  • PAT tokens via environment variables
  • Removed Docker secrets in favor of direct config

🔮 Future Roadmap

  • Observability stack (Prometheus, Grafana)
  • Automated backup strategies
  • Service mesh for inter-container communication
  • Self-hosted services expansion
  • Enhanced monitoring and alerting
Back to Research