BTop-like system monitor - Backend .NET10 + Frontend Angular20 + Mobile MAUI
- C# 68.6%
- TypeScript 24.5%
- Shell 3.2%
- CSS 2.5%
- Dockerfile 0.6%
- Other 0.6%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
- Se removieron los 6 logs en pantalla que mostraban plataforma, URL, intervalos y endpoints - La API arranca silenciosamente ahora |
||
| backend | ||
| docker | ||
| docs | ||
| frontend | ||
| mobile | ||
| scripts | ||
| .gitattributes | ||
| .gitignore | ||
| docker-compose.yml | ||
| README.md | ||
BTop Monitor
Dashboard de monitoreo de sistema en tiempo real (CPU, RAM, Discos, Red, Procesos) con backend .NET 10 y frontend Angular 20.
Requisitos
- .NET 10 SDK
- Node.js 20+ (solo para desarrollo del frontend)
- Opcional: Docker y Docker Compose
Instalación
Linux
# Instalar .NET 10 (si no lo tienes)
wget https://dot.net/v1/dotnet-install.sh -O dotnet-install.sh
chmod +x dotnet-install.sh
./dotnet-install.sh --channel 10.0
# Clonar y ejecutar
git clone http://192.168.3.216:3000/JMarin1980/btop-monitor.git
cd btop-monitor
dotnet run --project backend/BTopServer/BTopServer.Api
macOS
# Instalar .NET 10 via brew
brew install dotnet
# Clonar y ejecutar
git clone http://192.168.3.216:3000/JMarin1980/btop-monitor.git
cd btop-monitor
dotnet run --project backend/BTopServer/BTopServer.Api
Windows
# Instalar .NET 10 desde https://dotnet.microsoft.com/download
# Clonar y ejecutar
git clone http://192.168.3.216:3000/JMarin1980/btop-monitor.git
cd btop-monitor
dotnet run --project backend/BTopServer/BTopServer.Api
Docker
cd docker
docker compose -f docker-compose.dev.yml up --build
Configuración
El servidor escucha en http://0.0.0.0:5001 por defecto.
Para cambiar el puerto:
ASPNETCORE_URLS=http://0.0.0.0:8080 dotnet run --project backend/BTopServer/BTopServer.Api
También se puede modificar directamente en BTopServer.Api/appsettings.json bajo Kestrel:Endpoints:Http:Url.
Endpoints
| Método | Ruta | Descripción |
|---|---|---|
| GET | /api/metrics |
Snapshot completo (CPU, RAM, discos, red, procesos) |
| GET | /api/metrics/processes |
Solo la lista de procesos |
| GET | /api/metrics/history/{seconds} |
Histórico de métricas (N segundos) |
SignalR
| Hub | Ruta | Evento |
|---|---|---|
| MetricsHub | /hubs/metrics |
MetricsSnapshot |
El backend transmite métricas en tiempo real cada 2 segundos (configurable via appsettings.json).
Frontend
Acceder en:
- Docker:
http://localhost:3000 - Desarrollo:
http://localhost:4200(ejecutarng servedentro defrontend/)
Ingresar la IP y puerto del backend para conectar vía SignalR.
Solución de Problemas
| Problema | Solución |
|---|---|
| Puerto ocupado | Cambiar con ASPNETCORE_URLS=http://0.0.0.0:8080 |
| /proc no accesible en Linux | Verificar permisos del contenedor/CT (necesita acceso a /proc) |
| CORS | Configurar en appsettings.json bajo Cors:AllowedOrigins |
| SDK no encontrado | Verificar instalación: dotnet --list-sdks debe mostrar 10.x |
| npm install falla | Usar Node.js 20+ y npm actualizado (npm install -g npm@latest) |