Usa fallback a 127.0.0.1 quando l'hostname è localhost/::1 nei client websocket display/controller. Instrada il proxy del controller dev verso Vite tramite DEV_PROXY_HOST (default 127.0.0.1). Mostra gli URL locali del server con 127.0.0.1 per una diagnostica coerente su Raspberry/Linux.
47 lines
1.4 KiB
JavaScript
47 lines
1.4 KiB
JavaScript
import { networkInterfaces } from 'os'
|
|
|
|
/**
|
|
* Restituisce gli indirizzi IP di rete del sistema, escludendo loopback e bridge Docker.
|
|
* @returns {string[]} Elenco degli indirizzi IP disponibili.
|
|
*/
|
|
export function getNetworkIPs() {
|
|
const nets = networkInterfaces()
|
|
const networkIPs = []
|
|
|
|
for (const name of Object.keys(nets)) {
|
|
for (const net of nets[name]) {
|
|
// Esclude loopback (127.0.0.1), indirizzi non IPv4 e bridge Docker (172.17.x.x, 172.18.x.x).
|
|
if (net.family === 'IPv4' &&
|
|
!net.internal &&
|
|
!net.address.startsWith('172.17.') &&
|
|
!net.address.startsWith('172.18.')) {
|
|
networkIPs.push(net.address)
|
|
}
|
|
}
|
|
}
|
|
|
|
return networkIPs
|
|
}
|
|
|
|
/**
|
|
* Stampa il riepilogo di avvio del server con gli URL di accesso.
|
|
* @param {number} displayPort - Porta del display.
|
|
* @param {number} controllerPort - Porta del controller.
|
|
*/
|
|
export function printServerInfo(displayPort = 5173, controllerPort = 3001) {
|
|
const networkIPs = getNetworkIPs()
|
|
|
|
console.log(`\nSegnapunti Server`)
|
|
console.log(` Display: http://127.0.0.1:${displayPort}/`)
|
|
console.log(` Controller: http://127.0.0.1:${controllerPort}/`)
|
|
|
|
if (networkIPs.length > 0) {
|
|
console.log(`\n Controller da dispositivi remoti:`)
|
|
networkIPs.forEach(ip => {
|
|
console.log(` http://${ip}:${controllerPort}/`)
|
|
})
|
|
}
|
|
|
|
console.log()
|
|
}
|