Skip to content

KrlosAren/aren-house

Repository files navigation

aren-house

Mi homelab personal - documentación y configuración de toda la infraestructura.

Arquitectura General

Internet (CGNAT)
    │
    ▼
  Modem (192.168.1.89.x)
    │
    │ [USB-ETH] enx00e04c683da2
    │
    ▼
  rp1-master (Gateway + k3s Control Plane)
  192.168.1.89.x WAN / 10.0.0.1 LAN
    │
    │ [eth0] LAN 10.0.0.0/24
    │
    ▼
  Switch TP-Link SG105PE (10.0.0.5)
    │
    ├── rp2-node (10.0.0.2) - Netboot, k3s worker, microSD 32GB
    └── rp3-node (10.0.0.3) - Netboot, k3s worker, SSD 240GB

  Acceso remoto: Tailscale VPN (100.x.x.x, mesh, bypasses CGNAT)

Componentes

Componente Descripción Documentación
Ansible Automatización y configuración de infraestructura homelab-ansible/README.md
k8s-apps Manifiestos de Kubernetes para el cluster k3s k8s-apps/README.md
stacks Docker Compose stacks (en migración a k8s) -

Hardware

Dispositivo Rol Notas
Raspberry Pi 5 (rp1-master) Gateway/Router/VPN Fuente dedicada, 2 interfaces de red
Raspberry Pi 5 x2 (rp2, rp3) Workers Netboot via PXE/NFS (sin microSD), PoE
Switch TP-Link SG105PE Red interna 5 puertos Gigabit, 4 PoE+
Adaptador USB-Ethernet WAN del gateway Conexión al modem

Redes

Red Rango Propósito
WAN (Modem) 192.168.1.89.0/24 Red del modem (DHCP)
LAN Homelab 10.0.0.0/24 Red interna segmentada
Pods (k8s) 10.42.0.0/16 Red interna de pods
Services (k8s) 10.43.0.0/16 ClusterIPs
MetalLB 10.0.0.50-60 LoadBalancer IPs
DHCP 10.0.0.100-200 Clientes DHCP
Tailscale 100.x.x.x VPN mesh (bypasses CGNAT)

Estado Actual

Implementado

  • Gateway/Router con Raspberry Pi
  • Segmentación de red (homelab separado de red principal)
  • Automatización con Ansible
  • DHCP/DNS/TFTP con dnsmasq
  • DNS local (.homelab.local, .k8s.homelab.local)
  • Netboot (PXE/NFS) para nodos rp2 y rp3
  • NAT/IP forwarding para salida a internet
  • Firewall (UFW) con reglas entre redes
  • Docker en nodos con storage local (overlay2)
  • Tailscale VPN (reemplazó WireGuard por CGNAT)
  • DuckDNS para DNS dinámico
  • k3s cluster (3 nodos)
  • MetalLB para LoadBalancer (10.0.0.50-60)
  • Monitoreo con Prometheus/Grafana/node_exporter
  • Prometheus migrado a k8s (k8s-apps/monitoring-stack/)

Por hacer

  • Grafana en k8s
  • Loki (logs centralizados)
  • Cert-Manager (certificados TLS)
  • Alertmanager
  • Migrar stacks Docker restantes al cluster

Inicio Rápido

# Clonar el repositorio
git clone git@github.com:KrlosAren/aren-house.git
cd aren-house

# Configurar Ansible
cd homelab-ansible
ansible all -m ping

# Desplegar configuración del gateway
ansible-playbook playbooks/gateway.yml

Para más detalles, ver la documentación de cada componente.

Documentación

Tipo Ubicación Descripción
Decisiones docs/decisions/ ADRs - Por qué elegí cada tecnología
Conceptos docs/concepts/ Teoría: DHCP, DNS, PXE, NAT, NFS, etc.
Guías docs/guides/ How-to: playbooks, firewall, troubleshooting
Referencia docs/reference/ Referencia rápida: IPs, puertos, comandos
Runbooks docs/runbooks/ Procedimientos: disaster-recovery, maintenance
Ansible homelab-ansible/README.md Automatización de infraestructura
k8s-apps k8s-apps/README.md Aplicaciones Kubernetes

Decisiones Arquitectónicas (ADRs)

About

Home lab repositority for experimenting and making things happen.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors