🏰 Pocket Homelab en Termux & Hermes Agent — Cluster ARM y Centro de Mando

Infraestructura Distribuida de Bolsillo con Agentes Autónomos e Integración PKM

Guía arquitectónica y manual operativo del Ryukami Pocket Homelab: un cluster de servidores ARM64 sobre smartphones Android optimizados con Termux Nativo y Ubuntu (proot-distro), interconectados mediante OpenSSH Ed25519 bidireccional, espejado de baja latencia con Scrcpy, orquestación autónoma con Hermes Agent (v0.22.5) y documentación viva sincronizada con la bóveda Ryukami Labs.

  • 💻 Nodo Maestro (Estación Fija): Laptop Linux Mint (192.168.18.32 · Servidor SSH user-space en puerto 2222)
  • 📱 Nodo IA & Control Móvil (cel-ia): HONOR X8b (ALT-LX3 · Android 14 · 8 GB RAM + 8 GB Swap · IP 192.168.18.24:8022)
  • 🤖 Motor de Agentes: Hermes Agent v0.22.5 (Google AI Studio Free Tier + Puente WarpClip Gemini 4 Argon + Perch AI)
  • 🔗 Prerrequisitos: ADB Parte 1 · ADB Parte 2 & Scrcpy · TMUX Pro

🧭 Topología del Cluster y Asignación de Recursos

flowchart TD
    subgraph Mando["👑 Centro de Mando Dual (SSH Bidireccional)"]
        Laptop["💻 Laptop Principal (Linux Mint)\n• Hermes Agent v0.22.5\n• laptop-sshd (Puerto 2222)\n• Túnel Reverso Persistente"]
        CelIA["📱 Celular 1: cel-ia / cel-ubuntu (8GB RAM)\n• Termux Nativo (sshd :8022 + wake-lock)\n• Ubuntu PRoot (Hermes Agent + Zsh)\n• Obsidian + Syncthing-Fork"]
    end

    Laptop <-->|"ssh cel-ia / ssh cel-ubuntu\n<--> ssh laptop (Túnel :2222)"| CelIA

    subgraph Nodos["⚡ Nodos Especializados del Pocket Homelab (Termux 100% Nativo)"]
        CelBlue["📱 Celular 2: cel-blue (4GB RAM)\n🛡️ Blue Team & Servidor Web/Apps\n• PocketBase / FastAPI / Caddy (:8080)\n• Honeypot SSH & Monitor de Logs"]
        CelRed["📱 Celular 3: cel-red (3GB RAM)\n⚔️ Red Team & Sync Bóveda 24/7\n• Nmap, SQLMap, FFUF, Gobuster, Hydra\n• Nodo Puente Syncthing Obsidian"]
        CelInfra["📱 Celular 4: cel-infra (2GB RAM)\n🗄️ Infraestructura Ultraligera\n• Copyparty / FileBrowser (Nube LAN)\n• Telemetría Batería/RAM & DNS Local"]
        Laptop2["💻 Laptop Secundaria (Efímera)\n🐳 Laboratorio Pesado Ocasional\n• Contenedores OWASP Juice Shop / DVWA"]
    end

    CelIA --> CelBlue & CelRed & CelInfra
    Laptop --> CelBlue & CelRed & CelInfra
    CelRed -.->|"Auditoría Ética LAN"| CelBlue
    CelRed -.->|"Pruebas Ofensivas"| Laptop2

Matriz de Nodos y Regla de Oro de Virtualización

Regla Crítica: ¿Cuándo usar proot-distro y cuándo Termux Nativo?

  • En equipos de 2 GB, 3 GB y 4 GB de RAM: Prohibido usar proot-distro. La interceptación de llamadas al sistema (ptrace/seccomp) introduce sobrecarga de CPU y memoria. Ejecutar todos los demonios en Termux 100% Nativo (pkg install ...), consumiendo menos de 10 MB de RAM base.
  • En el equipo de 8 GB de RAM (cel-ia): Se mantiene Termux Nativo para los servicios críticos de red (sshd en puerto 8022 y termux-wake-lock) y se utiliza Ubuntu en proot-distro para cargas que requieren glibc completo (aarch64-linux-gnu), como Hermes Agent v0.22.5.
Nodo / Alias SSHHardwareEntornoRol OperativoEstado
laptopLaptop Principal (Linux Mint)Nativo x86_64Desarrollo, Bóveda Obsidian, Hermes Agent, scrcpy y laptop-sshdONLINE
cel-ia / cel-ubuntuHONOR X8b (ALT-LX3 · 8GB RAM)Termux + Ubuntu PRootMando móvil, Hermes Agent ARM64, reversing APK (ReaDroid) y RF (Fieldwatch)ONLINE
cel-blueSmartphone Android (4GB RAM)Termux NativoHosting de apps/APIs de prueba (PocketBase/FastAPI) y laboratorio defensivo Blue TeamREADY
cel-redSmartphone Android (3GB RAM)Termux NativoAuditoría ofensiva Red Team en red local y nodo Syncthing 24/7 para ObsidianREADY
cel-infraSmartphone Android (2GB RAM)Termux NativoAlmacenamiento web privado (Copyparty), monitor de salud del cluster y DNS localREADY

🛠️ 1. Blindaje de Android 14 para Servidores 24/7 (Vía ADB)

Android 12, 13 y 14 incluyen el Phantom Process Killer, un mecanismo que mata automáticamente procesos hijos en segundo plano (como sesiones de tmux, sshd o agentes de IA) cuando superan 32 subprocesos.

Para desactivarlo sin root y eximir a Termux del ahorro de batería agresivo (Doze):

Comandos ADB de Optimización Permanente

# 1. Emparejar y conectar por Depuración Inalámbrica (Android 11+)
adb pair 192.168.18.24:<PUERTO_VINCULACION> <CODIGO_6_DIGITOS>
adb connect 192.168.18.24:<PUERTO_CONEXION>
 
# 2. Desactivar el Phantom Process Killer de Android 14
adb shell "settings put global settings_enable_monitor_phantom_procs false"
adb shell "device_config set_sync_disabled_for_tests persistent"
adb shell "device_config put activity_manager max_phantom_processes 2147483647"
 
# 3. Agregar Termux a la lista blanca de energía (Doze Whitelist)
adb shell "dumpsys deviceidle whitelist +com.termux +com.termux.boot +com.termux.api"
 
# 4. Otorgar permisos de ubicación y almacenamiento para telemetría Wi-Fi y Obsidian
adb shell "pm grant com.termux.api android.permission.ACCESS_FINE_LOCATION"
adb shell "appops set com.termux MANAGE_EXTERNAL_STORAGE allow"

🔐 2. Guía de Uso de SSH Bidireccional (Laptop Celular)

Seguridad ante Tailworm

Siguiendo la auditoría documentada en Tailworm Vulnerabilidades Tailscale SSH, jamás se utiliza el servidor integrado tailscale ssh. Toda conexión emplea OpenSSH estándar y AsyncSSH autenticados exclusivamente con llaves criptográficas Ed25519.

A. Cómo entrar desde tu Laptop hacia tu Celular

En la terminal de tu laptop (Linux Mint) tienes dos comandos directos configurados en ~/.ssh/config:

Comandos desde la Laptop hacia el Celular

# Opción 1: Entrar directo a tu distro Ubuntu (usuario alex, Zsh + Starship + Hermes)
ssh cel-ubuntu
 
# Opción 2: Entrar al Termux nativo (usuario u0_a322)
ssh cel-ia
 
# Opción 3: Ejecutar un comando rápido en el celular sin abrir sesión interactiva
ssh cel-ia "termux-battery-status"

B. Cómo entrar desde tu Celular hacia tu Laptop

Cuando estás usando la pantalla de tu celular (ya sea en Termux nativo o dentro de Ubuntu) y quieres controlar la terminal de tu laptop:

Comandos desde el Celular hacia la Laptop

# ⚠️ No escribas solo "ssh" a secas (eso solo muestra la ayuda del programa).
# Escribe siempre el nombre del destino ("laptop"):
 
# 1. Entrar a la terminal interactiva de tu Laptop desde el celular:
ssh laptop
 
# 2. Ejecutar un comando en tu Laptop desde el celular:
ssh laptop "ls -la ~/Documentos/Obsidian/ryukami-labs"

C. Cómo funciona por dentro la conexión inversa (laptop-sshd + Túnel Reverso)

Para evitar que el firewall de Linux Mint o el aislamiento del router bloqueen las conexiones entrantes desde el celular hacia la laptop, se implementaron dos servicios ligeros de usuario (systemd --user) en la laptop:

  1. laptop-sshd.service (~/.local/bin/laptop-sshd): Servidor SSH en espacio de usuario sobre el puerto 2222 que solo acepta las llaves Ed25519 registradas en ~/.ssh/authorized_keys.
  2. homelab-tunnel.service: Mantiene un túnel reverso automático (ssh -N -R 2222:127.0.0.1:2222 cel-ia). Así, el puerto 2222 local del celular está conectado directamente con la laptop en todo momento.
# Verificar el estado de los servicios SSH en la laptop
systemctl --user status laptop-sshd.service homelab-tunnel.service

D. El comando global ubuntu en el Celular

En el celular se instaló el wrapper global /data/data/com.termux/files/usr/bin/ubuntu. Cada vez que escribes ubuntu en Termux:

  1. Activa termux-wake-lock en segundo plano.
  2. Verifica que sshd esté corriendo en Termux nativo (puerto 8022), fuera de proot, evitando conflictos de librerías (libtermux-exec).
  3. Inicia sesión limpia en proot-distro login ubuntu --user alex.

☤ 3. Hermes Agent (v0.22.5): Interfaces de Usuario y Modelos Top Gratuitos

Hermes Agent está instalado de forma independiente tanto en la Laptop (~/.hermes/) como dentro del Ubuntu del Celular (/home/alex/.hermes/).

A. Modos de Uso e Interfaces (Desktop, Web y Móvil)

Cuatro Formas de Interactuar con Hermes Agent

  1. 🖥️ Web Dashboard & Chat Embebido (Puerto 9119): Interfaz gráfica completa en React/Vite con renderizado de Markdown, bloques de código, visualizador de llamadas a herramientas (tool calling), selector de modelos, visor de sesiones y gestión de MCP.
    • En la laptop: abrir en el navegador http://localhost:9119.
    • En el celular: abrir en Chrome http://localhost:9119 (conectado mediante el túnel reverso SSH).
    • Servicio persistente: hermes-dashboard.service (systemd --user).
  2. 📱 Messaging Gateway (Telegram / WhatsApp / Discord): Permite chatear con Hermes desde la app nativa de mensajería de tu celular (enviándole mensajes de texto, audios o fotos) sin necesidad de abrir Termux ni mantener terminales activas.
    • Configuración inicial: hermes gateway setup.
    • Ejecución: hermes gateway run o hermes gateway start.
  3. 📟 Terminal TUI Moderna: Interfaz visual dentro de la terminal con soporte de ratón, paneles interactivos y scroll nativo:
    • Comando: hermes --tui.
  4. ⌨️ CLI Interactivo Clásico: El entorno REPL estándar y ultra-ligero para sesiones rápidas:
    • Comando: hermes.

Despliegue de Hermes en Telegram (Bot Activo: @ryukami_hermes_yuki_bot)

  1. Bot Oficial: Ryukami Hermes (@ryukami_hermes_yuki_bot), token configurado en ~/.hermes/.env.
  2. Servicio en Segundo Plano 24/7: Gestionado como demonio con hermes-gateway.service (systemd --user).
  3. Seguridad y Usuario Administrador: Usuario autorizado y emparejado permanentemente (8526036453), blindado en TELEGRAM_ALLOWED_USERS y configurado como canal de alertas en TELEGRAM_HOME_CHANNEL.
  4. Comandos de Gestión: hermes gateway status, journalctl --user -u hermes-gateway -f.
# Diagnóstico completo de componentes y herramientas
hermes doctor
 
# Cambiar de modelo o proveedor de inferencia interactivamente
hermes model
 
# Configurar claves de proveedores adicionales (OpenAI, Groq, OpenRouter, GitHub)
hermes auth add <proveedor>

B. Catálogo de Modelos Frontier a Costo Cero ($0) — Octubre 2026

Para operar el cluster con los modelos más potentes del mercado sin incurrir en costos de tarjeta ni límites comerciales, se aprovechan las siguientes cuotas gratuitas permanentes y créditos de bienvenida:

Proveedor / PlataformaModelos Top DisponiblesCuota Gratuita / Rate LimitsRequisitos de AccesoComando en Hermes
Google AI Studiogemini-3.5-flash (Default)
gemini-3.1-flash-lite
gemini-3.8-flash
gemini-2.5-pro
1,500 RPD, 15 RPM, 1M TPM
(Pro: 50 RPD para razonamiento pesado)
Cuenta Google gratis (sin tarjeta). Clave en AI Studio.hermes auth add gemini
GitHub Models (Open Code)gpt-4o
DeepSeek-R1
Llama-3.3-70B
gpt-4o-mini
50 RPD (gpt-4o / R1), 150 RPD (mini), 10-15 RPMCuenta GitHub y Personal Access Token (PAT). Sin tarjeta.hermes auth add github
NVIDIA NIM (Build)deepseek-ai/deepseek-r1
meta/llama-3.3-70b-instruct
qwen/qwen2.5-coder-32b
1,000 a 5,000 créditos gratis de bienvenida · 40 RPMRegistro en build.nvidia.com con verificación de correo.hermes auth add openai
(Base URL de NVIDIA)
Groq Cloud LPUllama-3.3-70b-versatile
llama-3.1-8b-instant
1,000 RPD, 30 RPM, 100k tokens/día a >500 tok/sCuenta gratis en Groq Console (sin tarjeta).hermes auth add groq
SambaNova CloudDeepSeek-R1
Meta-Llama-3.3-70B
Qwen2.5-Coder-32B
20 RPM, 20 RPD, 200,000 tokens/día en chips SN40LCuenta gratuita en SambaNova Cloud.hermes auth add sambanova
OpenRouter Freeopenrouter/free
(Nemotron, Qwen, Gemma, Llama)
50 RPD, 20 RPM · Auto-enrutamiento inteligente a modelos activosCuenta gratuita en OpenRouter.hermes auth add openrouter
WarpClip Bridge (Ryukami)gemini-4-argon
(Gemini Pro Web)
Ilimitado mediante sesión web persistente autenticadaPuente local WarpClipwarpclip send <ruta> -p "..."

C. Integración con la Bóveda ryukami-labs y Skills Personalizadas

Ambas instancias de Hermes cuentan con:

  • Variable OBSIDIAN_VAULT_PATH apuntando a /home/alexwce/Documentos/Obsidian/ryukami-labs (Laptop) y /sdcard/Documents/ryukami-labs (Celular).
  • Memoria persistente en ~/.hermes/memories/USER.md y ~/.hermes/memories/MEMORY.md.
  • Skill ryukami-homelab (~/.hermes/skills/devops/ryukami-homelab/SKILL.md): Instruye al agente sobre cómo administrar los nodos por SSH y validar cada nota con validate_vault_note.py.
  • Skill antigravity (~/.hermes/skills/devops/antigravity/SKILL.md): Permite a Hermes delegar tareas de programación avanzada y refactorización masiva a la CLI de Antigravity (/home/alexwce/.local/bin/agy) de manera desatendida.

D. Estrategia de Operación 24/7: ¿Qué pasa si apago la Laptop?

Ciclo de Vida del Nodo Maestro

Si la laptop se apaga por completo, sus procesos locales (hermes-gateway, laptop-sshd, gemini-quota-dashboard, hermes-dashboard) se detienen. Para mantener a tu agente de IA activo las 24 horas del día existen 3 enfoques recomendados:

  1. 📱 El Celular 8GB (cel-ia) como Host Standalone 24/7 (Implementado y Activo):
    • El smartphone consume solo ~1.5 a 2 Watts (frente a 45–65W de la laptop, protegiendo su batería degradada al 44%).
    • Corre el Gateway de Telegram de Hermes Agent con el modelo gemini-3.1-flash-lite-preview (15 RPM, 1,500 RPD, 1,048,576 tokens de contexto) de manera completamente independiente sobre Termux + Ubuntu PRoot (proot-distro), evitando el estrangulamiento de 5 RPM de modelos más pesados.
    • CLI de Gestión Nativa en Termux (bot):
      • bot status: Inspecciona el estado del proceso y confirma si está en ejecución 24/7.
      • bot start: Levanta el demonio en background asegurando termux-wake-lock y sshd.
      • bot stop: Detiene de forma segura el gateway.
      • bot restart: Reinicia el proceso y recarga las configuraciones de ~/.hermes/.
      • bot logs: Muestra el stream de logs en tiempo real (agent.log).
    • Puedes apagar la laptop por completo, cerrar la tapa o desconectarla: el bot de Telegram (@ryukami_hermes_yuki_bot) sigue respondiendo 24/7 desde el celular en todo momento.
  2. 💻 Modo Tapa Cerrada (Server / Clamshell Mode) en la Laptop:
    • Si prefieres que la laptop actúe como servidor silencioso, se desactiva la suspensión al cerrar la tapa editando /etc/systemd/logind.conf (HandleLidSwitch=ignore).
    • La pantalla se apaga, el consumo de energía cae drásticamente y la laptop continúa operando como un mini-servidor.
  3. ☁️ VPS Gratuito en la Nube (Oracle Cloud Always Free):
    • Permite desplegar el gateway en una instancia ARM con 4 vCPUs y 24 GB de RAM gratuita de por vida, manteniendo el bot en línea sin gastar electricidad de tu casa.

📊 4. Hub Multi-Modelo y Monitor de Cuotas en Vivo (Puerto 8088)

Para inspeccionar en tiempo real el consumo de tokens, probar llamadas y comparar los límites de cada proveedor sin exponer credenciales, se implementó el Ryukami Gemini & Multi-Model Free Tier Hub (systemd --user).

Dashboard Web Local y en Red LAN

  • 💻 Acceso desde la Laptop: http://localhost:8088
  • 📱 Acceso desde el Celular (misma red Wi-Fi): http://192.168.1.11:8088 (o http://localhost:8088 vía túnel reverso)
  • 🚀 Lanzador Directo a Hermes Web UI: Botón integrado hacia http://localhost:9119
  • 📂 Código fuente del servicio: /home/alexwce/Documentos/gemini-quota-dashboard (server.py + index.html)

Métricas y Funcionalidades del Hub

Métrica / ComponenteDescripción y Límite Free TierVisualización en el Dashboard
Cuenta Regresiva de ReseteoLa cuota diaria de Google AI Studio se reinicia diariamente a las 00:00 UTC (19:00 hora peruana - PET).Cronómetro visual en vivo con cálculo dinámico de horas, minutos y segundos restantes.
Peticiones por Minuto (RPM)Límite estricto de 15 RPM para gemini-3.1-flash-lite.Barra de progreso y contador reactivo para evitar errores HTTP 429.
Peticiones Diarias (RPD)Límite de 1,500 RPD por clave de API gratuita.Totalizador diario acumulado y cálculo de porcentaje restante disponible.
Tokens por Minuto (TPM)Límite de 1,000,000 TPM y ventana de contexto de 1,048,576 tokens.Telemetría de tokens de entrada (prompt) y tokens generados (salida).
Latencia de Red y DiagnósticoTiempo de ida y vuelta (RTT) hacia los servidores de Google Generative Language.Indicador en milisegundos con semáforo verde (<1500 ms) / ámbar / rojo.
Matriz de Proveedores GratuitosCatálogo comparativo de GitHub Models, NVIDIA NIM, Groq, SambaNova y OpenRouter.Tabla con enlaces directos para obtener credenciales y comandos CLI para Hermes.
Consola Interactiva de PruebaPermite enviar prompts de prueba directos para comprobar que la API responda sin tocar la configuración de Hermes.Input interactivo con visualización inmediata de respuesta y tokens consumidos.

Gestión de Servicios del Homelab en Linux Mint

Control de los Servicios en Segundo Plano (systemd --user)

# Ver estado general de los 5 servicios del Homelab
systemctl --user status gemini-quota-dashboard hermes-dashboard hermes-gateway laptop-sshd homelab-tunnel
 
# Reiniciar la Web UI de Hermes si se actualiza
systemctl --user restart hermes-dashboard.service
 
# Reiniciar el Hub de Cuotas
systemctl --user restart gemini-quota-dashboard.service
 
# Ver logs en tiempo real del servidor Web de Hermes
journalctl --user -u hermes-dashboard.service -f

⚔️ 5. Proyectos Prácticos para los Nodos de 4GB, 3GB y 2GB

Cuando conectes los otros tres teléfonos a la red local, ejecuta en cada uno el aprovisionamiento base en Termux Nativo (pkg install openssh tmux git curl termux-api -y && termux-wake-lock && sshd) y asígnales estos laboratorios:

  1. Laboratorio Red Team vs Blue Team (Curso Hacking Etico Dia 1 & Curso Hacking Etico Dia 2):
    • En cel-blue (4GB RAM): Despliega una API en Python/FastAPI o PHP en el puerto 8080 para practicar detección de inyecciones SQL, IDOR, falsificación de JWT y parches contra PHP2Shell RCE Critico en PHP.
    • En cel-red (3GB RAM): Ejecuta auditorías controladas dentro de tu LAN (nmap -sV -p 8022,8080, ffuf, sqlmap) contra cel-blue, mientras Hermes Agent analiza los logs de ambos equipos y genera el reporte forense en Obsidian.
  2. Nube Privada de Archivos e Imágenes en cel-infra (2GB RAM):
    • Instala Copyparty (pip install copyparty) en Termux nativo (copyparty -p 3923 /sdcard/Download). Obtienes un servidor web ultraligero con subida de imágenes, previsualización y WebDAV para tus proyectos web sin consumir apenas RAM.
  3. Hosting de Micro-Apps y Backends en cel-blue (4GB RAM):
    • Descarga el binario ARM64 de PocketBase (./pocketbase serve --http="0.0.0.0:8090"). Tendrás base de datos SQLite en tiempo real, autenticación de usuarios y panel de administración para todas tus apps de prueba con solo ~15 MB de consumo de RAM.

🔗 Conexiones en la Bóveda