Panel local
rud1-app es el panel web local que se sirve desde la propia Raspberry Pi, permitiéndote monitorizar y gestionar el dispositivo sin necesidad de conexión a internet.
¿Qué es rud1-app?
rud1-app es una aplicación web estática (React/Vite) que se sirve directamente desde el dispositivo, normalmente en el puerto 80 mediante nginx. Se comunica directamente con el agente rud1-fw a través de su API local en el puerto 7070.
Funcionalidades principales:
- Estado del dispositivo (ONLINE, PROVISIONING, OFFLINE) y código de registro
- Métricas en tiempo real: CPU, memoria, temperatura, disco
- Estado de la red e interfaces de red
- Estado y control de la VPN WireGuard
- Listado de dispositivos USB conectados
- Acceso rápido al dashboard de rud1-es en la nube
ℹ️ rud1-app funciona completamente en red local. No envía ningún dato a la nube por sí mismo; toda la comunicación con rud1-es la gestiona el agente rud1-fw.
Acceder al panel local
| Método | URL | Requisito |
|---|---|---|
| IP directa | http://192.168.x.x | Misma red local que el dispositivo |
| mDNS (si configurado) | http://rud1.local | mDNS habilitado en tu router/OS |
| Puerto alternativo | http://192.168.x.x:80 | Puerto 80 por defecto |
💡 Para encontrar la IP de tu Raspberry Pi, puedes usar nmap -sn 192.168.1.0/24 desde otro equipo en la misma red, o consultar el listado de clientes DHCP de tu router.
Secciones del panel
Panel principal (/)
La pantalla principal muestra un resumen completo del estado del dispositivo:
- Hostname, plataforma y versión del agente
- Badge de estado (ONLINE / PROVISIONING / OFFLINE)
- Código de registro para vincular el dispositivo con rud1-es
- Indicador de registro en la nube
- Gráficas de CPU, memoria, temperatura y disco
- Resumen de VPN y red
Red (/network)
- Estado de conectividad a internet
- Listado de todas las interfaces de red con sus direcciones IP
- Gateway y servidores DNS
VPN (/vpn)
- Indicador grande de estado VPN (Conectada / Desconectada)
- Interfaz, dirección IP, endpoint, AllowedIPs, DNS y clave pública
- Botón "Reconectar" para reiniciar la conexión WireGuard
USB (/usb)
- Listado de dispositivos USB conectados (Bus ID, Vendor/Product IDs, nombres, número de serie)
- Botón de actualización manual
Registros (/logs)
Enlace directo al dashboard de rud1-es en la nube para consultar los logs detallados del dispositivo.
Configuración (/settings)
- Rutas de los archivos de configuración del agente
- Instrucciones para actualizar la configuración
- Enlace al dashboard de rud1-es
Instalar rud1-app en el dispositivo
rud1-app se puede instalar de varias formas. La recomendada para producción es usar nginx para servir los archivos estáticos compilados.
Opción 1: Compilar e instalar con nginx (recomendado)
# En la Raspberry Pi cd /opt git clone https://github.com/rud1-es/rud1-app cd rud1-app npm install npm run build # Instalar nginx sudo apt install nginx -y # Copiar archivos compilados al directorio de nginx sudo cp -r dist/* /var/www/html/ # Reiniciar nginx sudo systemctl restart nginx sudo systemctl enable nginx
Opción 2: Servidor estático simple (desarrollo/pruebas)
# Desde el directorio de rud1-app, después de compilar: npm run preview # Preview en modo desarrollo # O con serve (requiere root para puerto 80): sudo npx serve -s dist -l 80
Configurar nginx (recomendado)
Para una instalación más robusta, crea un archivo de configuración de nginx específico para rud1-app:
server {
listen 80;
server_name _;
root /opt/rud1-app/dist;
index index.html;
# Necesario para React Router (SPA)
location / {
try_files $uri $uri/ /index.html;
}
# Cache para assets estáticos
location /assets/ {
expires 1y;
add_header Cache-Control "public, immutable";
}
# No cachear el index.html
location = /index.html {
add_header Cache-Control "no-cache";
}
}# Activar la configuración sudo ln -s /etc/nginx/sites-available/rud1-app /etc/nginx/sites-enabled/ sudo rm /etc/nginx/sites-enabled/default # Elimina la config por defecto si existe sudo nginx -t # Verifica la sintaxis sudo systemctl reload nginx
⚠️ rud1-app necesita poder comunicarse con el agente rud1-fw en http://localhost:7070. Si el agente está configurado con server.host: 127.0.0.1 (por defecto), rud1-app debe estar servido desde el mismo dispositivo. Si sirves rud1-app desde otro equipo, deberás cambiar server.host a 0.0.0.0 y configurar el endpoint de la API en rud1-app.