Mi Homelab

Documentación detallada y actualizada de mi homelab. Pd: esto me sirve como DRP.

Hardware actual

  • Red
  • Switch NETGEAR GS308E 8 Puertos Gestionado

  • Cómputo

  • Raspberry Pi 5 8GB RAM + M.2 SSD 128GB.
  • Custom server:

    • CPU: Ryzen 5 5400G
    • RAM: 2x8GB 3200Mhz
    • SDA: M.2 SSD 256GB
    • SDB: SSD SATA1 1TB
    • SDC: SSD SATA2 1TB
  • Almacenamiento

  • Comming soon...

Nomenclatura

Para establecer un orden y una lógica entre las máquinas y dispositivos, establecí la siguiente arquitectura:

  • Red
  • RF00: Router Físico
  • RV00: Router Virtual
  • FF00: Firewall Físico
  • FV00: Firewall Virtual
  • SF00: Switch Físico
  • SV00: Swtich Virtual

  • Hosts

  • BM00: Bare-Metal (Host físico)
  • CB00: Contenedor Base
  • CI00: Contenedor Infraestructura
  • CS00: Contenedor Servicio

  • Dispositivos

  • DF00: Disco Físico
  • DV00: Disco Virtual

Objetivo

Construir un home-datacentre de bajo consumo.

Arquitectura

Raspberry Pi 5

  • Raspi OS Lite
  • LXC
  • Red en bridge
  • Servicios aislados

CPU

La Raspberry Pi 5 tiene 4 Cores, los repartiremos así:

Núcleo Asignación Función
0 Sistema (Host) Reservado para el Kernel del SO, gestión de red, discos...
1 Infraestructura DNS, Proxy, Stats, VPN y Home
2 y 3 Apps / Servicios Todos los servicios y aplicaciones.

Cómo establecer esta configuración (config de cada LXC)

Contenedores de Infraestructura:

lxc.cgroup2.cpuset.cpus = 1
lxc.cgroup2.cpu.weight = 100

Contenedores de Servicios/Aplicaciones:

lxc.cgroup2.cpuset.cpus = 2-3
lxc.cgroup2.cpu.weight = 50

(Nota: Le damos los dos núcleos finales a las apps porque suelen ser más pesadas gráficamente o al compilar, pero les bajamos el weight para que el sistema siempre tenga prioridad).

Red

  • Host: 192.168.1.100

  • Contenedores:

  • Infraestructura:

    • DNS → 192.168.1.101 (Pi-hole)
    • Proxy → 192.168.1.102 (Nginx)
    • Stats → 192.168.1.103 (Grafana)
    • VPN → 192.168.1.104 (WireGuard)
    • Home → 192.168.1.105 (Homepage)
  • Aplicaciones (para funcionar 24/7):

    • Host → 192.168.1.51 (Nginx)
    • Cloud → 192.168.1.52 (NextCloud)
    • Git → 192.168.1.53 (Gitea)
    • NAS → 192.168.1.54 (OpenMediaVault)
  • Aplicaciones (para probar):

    • Domótica → 192.168.1.5X+ (Home Assistand)
    • Minecraft → 192.168.1.5X+ (MinecraftServer)
    • Fotos → 192.168.1.5X+ (Immich)
    • Musica → 192.168.1.5X+ (Navidrome)
    • Películas → 192.168.1.5X+ (Jellyfin)
    • Movimiento → 192.168.1.5X+ (MotionEye)
    • Juegos → 192.168.1.5X+ (RetroPie)

Serie en YouTube

Publicaré videos sobre este proyecto en mi canal de YouTube. Desde overviews del homelab hasta guías paso a paso para la instalación de cada servicio.

-> https://www.youtube.com/@davidalvarezp

Documentación

Raspberry Pi 5 (BM01-pi5)

  1. Configuración del host
  2. Configuración de LXC
  3. Contenedores base
  4. Contenedores de infraestructura
  5. Contenedores de servicios

Requisitos

  • Host físico/virtual 24/7
  • Conexión por Ethernet
  • Conocimientos básicos Linux

Filosofía

  • Sin cajas negras.
  • Todo Open-Source.
  • Solo Linux.