100 lines
4.5 KiB
Markdown
100 lines
4.5 KiB
Markdown
# PegaProx — Panel de Gestión Multi-Nodo
|
|
|
|
> **LXC**: TYAN VMID 123
|
|
> **IP**: 192.168.10.125
|
|
> **URL**: https://192.168.10.125:5000
|
|
> **Versión**: v1.1.1 (release estable, checkout por tag)
|
|
> **Estado**: ✅ running
|
|
|
|
---
|
|
|
|
## Descripción
|
|
|
|
Panel web para el control y administración centralizada de los 3 nodos Proxmox (TYAN, Cisco1, DellT430-2) sin necesidad de cluster Proxmox. Proporciona métricas en vivo, gestión de VMs/LXC, snapshots programados, backups, alertas, RBAC y auditoría.
|
|
|
|
- Repo: https://github.com/PegaProx/project-pegaprox
|
|
- Docs: https://docs.pegaprox.com
|
|
- Licencia: AGPL-3.0
|
|
|
|
## Infraestructura
|
|
|
|
| Parámetro | Valor |
|
|
|---|---|
|
|
| **Nodo** | TYAN (192.168.10.3) |
|
|
| **VMID** | 123 |
|
|
| **Tipo** | LXC (unprivileged) |
|
|
| **OS** | Ubuntu 24.04 |
|
|
| **CPU** | 4 cores |
|
|
| **RAM** | 4 GB |
|
|
| **Disco** | 40 GB (local-lvm) |
|
|
| **IP** | 192.168.10.125/24 |
|
|
| **Instalación** | Git tag `v1.1.1` en `/opt/PegaProx` + venv + `deploy.sh --no-interactive` |
|
|
| **Servicio** | `systemctl status pegaprox` (systemd, autostart) |
|
|
| **Puertos** | 5000 (Web), 5001 (VNC WebSocket), 5002 (SSH WebSocket) |
|
|
|
|
## Acceso
|
|
|
|
| Método | Detalle |
|
|
|---|---|
|
|
| Web UI (LAN) | ~~https://192.168.10.125:5000~~ ya no disponible (modo reverse proxy) |
|
|
| Web UI (exterior) | https://pegaprox.consultoria-as.com — vía **Cloudflare Tunnel** (acceso único) |
|
|
| Admin | usuario `admin` / `Aasi940812` |
|
|
| SSH | `ssh root@192.168.10.125` (password: `Aasi940812`) |
|
|
|
|
## Túnel Cloudflare
|
|
|
|
| Parámetro | Valor |
|
|
|---|---|
|
|
| **Conector** | `cloudflared` 2026.9.1 (repo pkg.cloudflare.com, Ubuntu 24.04) |
|
|
| **Servicio** | `systemctl status cloudflared` (token-managed, `/etc/cloudflared/token`) |
|
|
| **Protocolo** | `http2` forzado via override systemd (`/etc/systemd/system/cloudflared.service.d/override.conf`) — QUIC a region2 falló en el precheck |
|
|
| **Origen** | Dashboard Zero Trust → Public hostname → Type `HTTP`, Service `http://localhost:5000` |
|
|
|
|
> **Troubleshooting del montaje (Sept 2026):**
|
|
> 1. Token del conector con "Invalid tunnel secret" → el token se había copiado mal/regenerado; pedirlo fresco del dashboard.
|
|
> 2. Error **1016/530** → el registro DNS viejo `pegaprox` bloqueaba el public hostname; se borró y el túnel recreó el CNAME.
|
|
> 3. Error **502 con x509** → Type `HTTPS` contra un origen con cert autofirmado.
|
|
> 4. Error **502 con connection reset** → Type `HTTPS` contra PegaProx en modo reverse proxy (HTTP plano); el Type correcto es `HTTP`.
|
|
> 5. Consolas sin conectar por túnel → activado modo reverse proxy; el frontend enruta los WS por el puerto principal.
|
|
|
|
## Modo Reverse Proxy (consolas habilitadas)
|
|
|
|
PegaProx corre **detrás de proxy** (`PEGAPROX_BEHIND_PROXY=true` en `/etc/systemd/system/pegaprox.service.d/override.conf`):
|
|
|
|
- Sirve **HTTP plano en 127.0.0.1:5000** (el TLS lo termina Cloudflare en el borde)
|
|
- Las consolas (VNC de VMs, terminal de LXC/nodos) se enrutan por el **mismo hostname/puerto** — no se necesitan public hostnames extra para 5001/5002
|
|
- ⚠️ El acceso directo LAN `https://192.168.10.125:5000` **ya no funciona** (bind solo loopback, sin TLS). El acceso es siempre por `https://pegaprox.consultoria-as.com`
|
|
- Verificado por API: `GET /api/health` → `200`, y el endpoint WS de consola responde `401` sin token (llega al backend, no 502)
|
|
|
|
## Nodos Conectados (root@pam para pruebas)
|
|
|
|
| Cluster | Host | Guests visibles |
|
|
|---|---|---|
|
|
| TYAN | 192.168.10.3 | 14 (todos running) |
|
|
| Cisco1 | 192.168.10.185 | 16 (12 running) |
|
|
| DellT430-2 | 192.168.10.187 | 9 (todos running) |
|
|
|
|
> **Nota**: PegaProx auto-creó un **API token** para `root@pam` en cada nodo Proxmox (feature #110). Para producción, considerar crear un usuario PVE dedicado con roles limitados (`PVEVMAdmin`, `PVEDatastoreAdmin`, `PVESysAdmin`) en lugar de root.
|
|
|
|
## Seguridad (pendiente de endurecer)
|
|
|
|
- [ ] Activar **2FA (TOTP)** en la cuenta admin (Settings → Security)
|
|
- [x] Exposición externa via Cloudflare Tunnel (sin puertos abiertos)
|
|
- [ ] Activar **Cloudflare Access** (zero-trust con 2FA) sobre el hostname `pegaprox.consultoria-as.com` antes de uso en producción
|
|
- [ ] Cambiar de root@pam a usuario PVE con permisos limitados al terminar las pruebas
|
|
- [ ] La DB está encriptada (SQLCipher); master key en `/etc/pegaprox/secret.key` (respaldarla)
|
|
|
|
## Actualizaciones
|
|
|
|
```bash
|
|
cd /opt/PegaProx
|
|
# verificar el tag estable antes de actualizar
|
|
git fetch --tags && git tag -l | sort -V | tail -5
|
|
```
|
|
O desde la UI: Settings → Updates → Check for Updates.
|
|
|
|
---
|
|
|
|
*Documentación de PegaProx - Consultoria-AS*
|
|
*Actualizado: 19 Septiembre 2026*
|