Despliegue
vminfo --web es un panel ligero para un solo host. No necesita base de datos ni pretende ser una plataforma de monitorización central. Mantén el servidor HTTP integrado dentro de un límite de confianza.
Panel solo local
La configuración predeterminada y más segura no necesita autenticación:
vminfo --webEscucha en 127.0.0.1:20021. Abre http://127.0.0.1:20021 en la misma máquina o comprueba la API:
curl -fsS http://127.0.0.1:20021/api/v1/healthSin autenticación solo se aceptan cabeceras Host con localhost o una IP loopback, lo que bloquea el DNS rebinding.
Acceso remoto por SSH
Para administración individual, conserva el listener en loopback y crea un túnel:
# En el servidor
vminfo --web
# En tu estación de trabajo
ssh -L 20021:127.0.0.1:20021 user@serverDespués abre http://127.0.0.1:20021 en tu estación. El puerto del panel no queda publicado en la red del servidor.
Acceso mediante un proxy inverso HTTPS
Para una URL persistente, mantén vminfo en loopback y usa un proxy HTTPS en el mismo host:
vminfo --web --bind 127.0.0.1 --port 20021 --token--token sin valor genera un token aleatorio y una URL lista para abrir. También puedes pasar un valor fijo:
vminfo --web --bind 127.0.0.1 --port 20021 --token "$VMINFO_WEB_TOKEN"El proxy debe terminar TLS, reenviar a 127.0.0.1:20021, conservar Host, establecer X-Forwarded-Proto: https, admitir upgrades WebSocket en /ws y mantener panel y API en el mismo origen.
La primera visita correcta a /?token=... guarda una cookie HttpOnly, SameSite=Lax y redirige a una URL sin el token. Si la petición se reconoce como HTTPS, la cookie también lleva Secure.
Seguridad del transporte
El servidor integrado usa HTTP. El token controla el acceso, pero no cifra el tráfico. No expongas el puerto directamente a Internet; usa un proxy HTTPS o un túnel SSH.
Enlace directo a una red privada
Un bind que no sea loopback siempre requiere token:
vminfo --web --bind 0.0.0.0 --port 20021 --tokenSin --token, vminfo falla al arrancar. Limita los orígenes con un firewall y recuerda que la conexión sigue siendo HTTP sin cifrar.
Protecciones del navegador y de la API
- Las peticiones REST y WebSocket con
Origindeben coincidir en scheme, host y puerto - No se devuelve
Access-Control-Allow-Origin: * - Con token, las páginas,
/api/v1/*y/wsrequieren el token o la cookie - Los clientes nativos sin
Originsiguen siendo compatibles - Los diagnósticos de red validan JSON, tamaño, número de pruebas y timeout
Supervisión del proceso
Usa el supervisor existente del host, como systemd, launchd o un runtime de contenedores. Ejecuta como usuario no root cuando sea posible, reinicia tras fallos y usa SIGTERM para detenerlo. vminfo no instala una definición de servicio.
Verificación
curl -fsS http://127.0.0.1:20021/api/v1/health
curl -fsS "http://127.0.0.1:20021/api/v1/health?token=$VMINFO_WEB_TOKEN"No existe un endpoint público de health separado. Con autenticación, /api/v1/health también está protegido.