CS Home: Homepage¶
Ahora empieza la parte divertida: darle una cara visual a tu Homelab.
Homepage es perfecto para esto. Es un panel estático, rápido y muy estético que se conecta vía API a tus otros contenedores para mostrarte el estado de tu CPU, cuántos anuncios ha bloqueado Pi-hole o si Kuma detecta algún fallo.
1. Despliegue del Contenedor¶
Como es una aplicación que corre sobre Node.js, vamos a clonar nuestra base Debian y prepararla.
Desde el host (Raspberry Pi):
# Clonar
sudo lxc-copy -n B0-deb12 -N CI05-home
# Copia el contenido de config.conf
sudo nano /var/lib/lxc/CI05-home/config
# Iniciar y entrar
sudo lxc-start -n CI05-home
sudo lxc-attach -n CI05-home
# Configurar DNS
rm /etc/resolv.conf
echo "nameserver 192.168.1.101" > /etc/resolv.conf
echo "nameserver 8.8.8.8" >> /etc/resolv.conf
2. Instalación de Homepage¶
1. Instalación de Node.js (El motor)¶
Homepage requiere Node.js 18 o superior. Usaremos el repositorio oficial de NodeSource para tener una versión estable y moderna en tu Debian 12.
Dentro de CI05-home:
# Instalamos dependencias previas
apt update && apt install -y curl git sudo
# Descargamos e instalamos el script de NodeSource (Node 20 LTS)
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
apt install -y nodejs
Verifica la versión: node -v (debería salir v20.x.x).
2. Descarga y Preparación de Homepage¶
Vamos a colocar la aplicación en /opt/homepage:
cd /opt
git clone https://github.com/gethomepage/homepage.git
cd homepage
# Instalar las dependencias de la aplicación
npm install -g pnpm
pnpm install
pnpm approve-builds
# Seleciona a (todos)
# Do you approve? (y/N) · true
# Selecciona y
# Compilar la aplicación para producción (esto puede tardar 1-2 min en la Pi 5)
pnpm build
#npm run build
ufw allow 3000/tcp
3. Configuración Inicial¶
Homepage busca sus archivos en una carpeta llamada config. Vamos a crear una configuración básica.
# Si no existe, creamos la carpeta de configuración
mkdir -p config
Modfica el archivo de servicios: nano config/services.yaml
Copiar el archivo services.yml
Modifica el archivo de widgets: nano config/widgets.yaml
Copiar el archivo widgets.yml
4. Crear el Servicio de Sistema (Persistence)¶
Necesitamos que systemd se encargue de arrancar Homepage automáticamente si el contenedor se reinicia.
Crea el archivo del servicio:
sudo nano /etc/systemd/system/homepage.service`
# Copia el contenido de homepage
Activa el servicio:
systemctl daemon-reload
systemctl enable homepage
systemctl start homepage
5. Acceso y Verificación¶
Homepage corre por defecto en el puerto 3000.
- Abre tu navegador y ve a:
http://192.168.1.105:3000 - ¡Deberías ver tu dashboard con los botones de Pi-hole y Proxy!