diff --git a/AppImage/components/hardware.tsx b/AppImage/components/hardware.tsx
index ac6cbb7..76b3be4 100644
--- a/AppImage/components/hardware.tsx
+++ b/AppImage/components/hardware.tsx
@@ -113,12 +113,6 @@ export default function Hardware() {
refreshInterval: 5000,
})
- if (hardwareData) {
- console.log("[v0] Hardware data received:", hardwareData)
- console.log("[v0] Network cards:", hardwareData.network_cards)
- console.log("[v0] Network cards length:", hardwareData.network_cards?.length)
- }
-
if (error) {
return (
diff --git a/AppImage/scripts/flask_server.py b/AppImage/scripts/flask_server.py
index fb0582d..0c01334 100644
--- a/AppImage/scripts/flask_server.py
+++ b/AppImage/scripts/flask_server.py
@@ -72,9 +72,18 @@ def serve_dashboard():
# Detectar si estamos ejecutándose desde AppImage
appimage_root = os.environ.get('APPDIR')
if not appimage_root:
- # Fallback: intentar detectar desde la ubicación del script
+ # Fallback: detectar desde la ubicación del script
+ # Si el script está en usr/bin/, necesitamos subir 2 niveles para llegar a la raíz
base_dir = os.path.dirname(os.path.abspath(__file__))
- appimage_root = os.path.dirname(base_dir) # Subir un nivel desde usr/bin/
+ # Verificar si estamos en usr/bin/
+ if base_dir.endswith('usr/bin'):
+ # Subir 2 niveles: usr/bin/ -> usr/ -> AppImage root
+ appimage_root = os.path.dirname(os.path.dirname(base_dir))
+ else:
+ # Fallback genérico: subir 1 nivel
+ appimage_root = os.path.dirname(base_dir)
+
+ print(f"[v0] Detected AppImage root: {appimage_root}")
index_paths = [
os.path.join(appimage_root, 'web', 'index.html'), # Ruta principal para AppImage
@@ -189,7 +198,10 @@ def serve_next_static(filename):
appimage_root = os.environ.get('APPDIR')
if not appimage_root:
base_dir = os.path.dirname(os.path.abspath(__file__))
- appimage_root = os.path.dirname(base_dir)
+ if base_dir.endswith('usr/bin'):
+ appimage_root = os.path.dirname(os.path.dirname(base_dir))
+ else:
+ appimage_root = os.path.dirname(base_dir)
static_paths = [
os.path.join(appimage_root, 'web', '_next'), # Ruta principal
@@ -214,7 +226,10 @@ def serve_static_files(filename):
appimage_root = os.environ.get('APPDIR')
if not appimage_root:
base_dir = os.path.dirname(os.path.abspath(__file__))
- appimage_root = os.path.dirname(base_dir)
+ if base_dir.endswith('usr/bin'):
+ appimage_root = os.path.dirname(os.path.dirname(base_dir))
+ else:
+ appimage_root = os.path.dirname(base_dir)
public_paths = [
os.path.join(appimage_root, 'web'), # Raíz web para exportación estática
@@ -240,7 +255,10 @@ def serve_images(filename):
appimage_root = os.environ.get('APPDIR')
if not appimage_root:
base_dir = os.path.dirname(os.path.abspath(__file__))
- appimage_root = os.path.dirname(base_dir)
+ if base_dir.endswith('usr/bin'):
+ appimage_root = os.path.dirname(os.path.dirname(base_dir))
+ else:
+ appimage_root = os.path.dirname(base_dir)
image_paths = [
os.path.join(appimage_root, 'web', 'images'), # Ruta principal para exportación estática
@@ -1806,7 +1824,14 @@ def api_info():
@app.route('/api/hardware', methods=['GET'])
def api_hardware():
"""Get comprehensive hardware information"""
- return jsonify(get_hardware_info())
+ hardware_info = get_hardware_info()
+
+ network_info = get_network_info()
+ hardware_info['network_interfaces'] = network_info.get('physical_interfaces', []) + network_info.get('bridge_interfaces', [])
+
+ print(f"[v0] /api/hardware returning {len(hardware_info.get('network_interfaces', []))} network interfaces")
+
+ return jsonify(hardware_info)
@app.route('/api/vms/', methods=['GET'])
def api_vm_details(vmid):