mirror of
https://github.com/MacRimi/ProxMenux.git
synced 2025-11-18 03:26:17 +00:00
feat: add comprehensive project documentation and analysis
- Created detailed documentation covering ProxMenux project structure, installation flow, and core components - Added in-depth analysis of script architecture, execution patterns, and key functionalities - Documented system configuration, translation mechanism, and component interactions - Included detailed breakdown of file organization, menu system, and installation processes - Added technical specifications for ProxMenux Monitor web dashboar
This commit is contained in:
512
docs/01.PROXMENUX_REVIEW.md
Normal file
512
docs/01.PROXMENUX_REVIEW.md
Normal file
@@ -0,0 +1,512 @@
|
|||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# **Análisis Completo del proyecto ProxMenux**
|
||||||
|
|
||||||
|
## **1. Estructura General del Proyecto**
|
||||||
|
|
||||||
|
### **Archivos Principales**
|
||||||
|
- **[install_proxmenux.sh](cci:7://file:///home/debian/src/ProxMenuxDotDeb/install_proxmenux.sh:0:0-0:0)**: Script de instalación principal (723 líneas)
|
||||||
|
- **[menu](cci:7://file:///home/debian/src/ProxMenuxDotDeb/menu:0:0-0:0)**: Script principal que se instala como comando del sistema (93 líneas)
|
||||||
|
- **[version.txt](cci:7://file:///home/debian/src/ProxMenuxDotDeb/version.txt:0:0-0:0)**: Control de versiones (actual: 1.1.7)
|
||||||
|
|
||||||
|
### **Directorios Principales**
|
||||||
|
```
|
||||||
|
ProxMenuxDotDeb/
|
||||||
|
├── scripts/ # 122 archivos de scripts bash
|
||||||
|
│ ├── menus/ # 13 scripts de menús
|
||||||
|
│ ├── lxc/ # 6 scripts para contenedores LXC
|
||||||
|
│ ├── vm/ # 13 scripts para máquinas virtuales
|
||||||
|
│ ├── storage/ # 9 scripts de almacenamiento
|
||||||
|
│ ├── share/ # 12 scripts para compartir recursos
|
||||||
|
│ ├── utilities/ # 6 utilidades del sistema
|
||||||
|
│ ├── global/ # 10 funciones comunes
|
||||||
|
│ ├── backup_restore/ # 6 scripts de respaldo
|
||||||
|
│ ├── post_install/ # 3 scripts post-instalación
|
||||||
|
│ └── gpu_tpu/ # Scripts para hardware gráfico
|
||||||
|
├── web/ # 136 archivos - Dashboard Next.js
|
||||||
|
├── AppImage/ # 54 archivos - ProxMenux Monitor
|
||||||
|
├── json/ # Archivos de caché de traducciones
|
||||||
|
├── lang/ # Archivos de idioma
|
||||||
|
├── guides/ # 5 guías de usuario
|
||||||
|
└── images/ # 7 imágenes del proyecto
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## **2. Flujo de Instalación**
|
||||||
|
|
||||||
|
### **Script: [install_proxmenux.sh](cci:7://file:///home/debian/src/ProxMenuxDotDeb/install_proxmenux.sh:0:0-0:0)**
|
||||||
|
|
||||||
|
**Fase 1: Inicialización**
|
||||||
|
- Verifica permisos root (línea 716-719)
|
||||||
|
- Carga [utils.sh](cci:7://file:///home/debian/src/ProxMenuxDotDeb/scripts/utils.sh:0:0-0:0) desde GitHub (línea 54-57)
|
||||||
|
- Limpia archivos corruptos de configuración (línea 59-68)
|
||||||
|
|
||||||
|
**Fase 2: Detección de Instalación Existente**
|
||||||
|
- Función [check_existing_installation()](cci:1://file:///home/debian/src/ProxMenuxDotDeb/install_proxmenux.sh:70:0-106:1) (línea 71-107)
|
||||||
|
- Detecta 4 tipos: `none`, `normal`, `translation`, `unknown`
|
||||||
|
- Verifica entorno virtual Python en `/opt/googletrans-env`
|
||||||
|
- Verifica configuración de idioma en `/usr/local/share/proxmenux/config.json`
|
||||||
|
|
||||||
|
**Fase 3: Selección de Versión**
|
||||||
|
- **Versión Normal** (opción 1):
|
||||||
|
- Dependencias: `dialog`, `curl`, `jq`
|
||||||
|
- Solo inglés
|
||||||
|
- Más ligera y rápida
|
||||||
|
|
||||||
|
- **Versión con Traducción** (opción 2):
|
||||||
|
- Dependencias adicionales: `python3`, `python3-venv`, `python3-pip`
|
||||||
|
- Instala `googletrans==4.0.0-rc1` en entorno virtual
|
||||||
|
- Soporte multiidioma: en, es, fr, de, it, pt
|
||||||
|
- **Nota**: No compatible con Proxmox VE 9+ (línea 639-658)
|
||||||
|
|
||||||
|
**Fase 4: Instalación Normal** ([install_normal_version()](cci:1://file:///home/debian/src/ProxMenuxDotDeb/install_proxmenux.sh:402:0-484:1))
|
||||||
|
1. Instala dependencias básicas
|
||||||
|
2. Crea directorios:
|
||||||
|
- `/usr/local/bin` (ejecutables)
|
||||||
|
- `/usr/local/share/proxmenux` (archivos del sistema)
|
||||||
|
3. Descarga desde GitHub:
|
||||||
|
- `utils.sh` → `/usr/local/share/proxmenux/utils.sh`
|
||||||
|
- `menu` → `/usr/local/bin/menu`
|
||||||
|
- `version.txt` → `/usr/local/share/proxmenux/version.txt`
|
||||||
|
4. Instala ProxMenux Monitor (AppImage)
|
||||||
|
|
||||||
|
**Fase 5: Instalación con Traducción** (`install_translation_version()`)
|
||||||
|
- Pasos adicionales:
|
||||||
|
- Selector de idioma interactivo (línea 234-273)
|
||||||
|
- Crea entorno virtual Python en `/opt/googletrans-env`
|
||||||
|
- Instala googletrans con pip
|
||||||
|
- Descarga `cache.json` con traducciones precargadas
|
||||||
|
- Sistema de caché para reducir llamadas a la API de traducción
|
||||||
|
|
||||||
|
**Fase 6: ProxMenux Monitor**
|
||||||
|
- Descarga AppImage desde GitHub (línea 317-360)
|
||||||
|
- Verifica checksum SHA256 (línea 333-351)
|
||||||
|
- Crea servicio systemd `/etc/systemd/system/proxmenux-monitor.service`
|
||||||
|
- Puerto por defecto: 8008
|
||||||
|
- Se ejecuta como usuario root
|
||||||
|
- Auto-inicio en boot
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## **3. Funcionamiento del Comando `menu`**
|
||||||
|
|
||||||
|
### **Script Principal: `/usr/local/bin/menu`**
|
||||||
|
|
||||||
|
**Flujo de Ejecución:**
|
||||||
|
|
||||||
|
1. **Carga de Configuración** (línea 33-44):
|
||||||
|
```bash
|
||||||
|
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
|
||||||
|
BASE_DIR="/usr/local/share/proxmenux"
|
||||||
|
source "$UTILS_FILE"
|
||||||
|
```
|
||||||
|
|
||||||
|
2. **Sistema de Traducción** (línea 89-92):
|
||||||
|
- Carga idioma desde `config.json`
|
||||||
|
- Inicializa caché de traducciones
|
||||||
|
- Función `translate()` en `utils.sh`
|
||||||
|
|
||||||
|
3. **Verificación de Actualizaciones** (línea 48-80):
|
||||||
|
- Compara versión local vs remota
|
||||||
|
- Prompt interactivo para actualizar
|
||||||
|
- Descarga y ejecuta nuevo `install_proxmenux.sh` si hay actualización
|
||||||
|
|
||||||
|
4. **Ejecución del Menú Principal** (línea 84-86):
|
||||||
|
```bash
|
||||||
|
exec bash <(curl -fsSL "$REPO_URL/scripts/menus/main_menu.sh")
|
||||||
|
```
|
||||||
|
|
||||||
|
**Importante**: El comando `menu` **NO ejecuta scripts locales**, siempre descarga desde GitHub.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## **4. Sistema de Menús**
|
||||||
|
|
||||||
|
### **Menú Principal: `scripts/menus/main_menu.sh`**
|
||||||
|
|
||||||
|
**Compatibilidad PVE 9** (línea 26-64):
|
||||||
|
- Detecta versión de Proxmox
|
||||||
|
- Si PVE 9+ y tiene traducciones instaladas → fuerza reinstalación en versión normal
|
||||||
|
- Previene errores de compatibilidad
|
||||||
|
|
||||||
|
**Opciones del Menú** (línea 97-111):
|
||||||
|
```
|
||||||
|
1. Settings post-install Proxmox → menu_post_install.sh
|
||||||
|
2. Hardware: GPUs and Coral-TPU → hw_grafics_menu.sh
|
||||||
|
3. Create VM from template → create_vm_menu.sh
|
||||||
|
4. Disk and Storage Manager → storage_menu.sh
|
||||||
|
5. Mount and Share Manager → share_menu.sh
|
||||||
|
6. Proxmox VE Helper Scripts → menu_Helper_Scripts.sh
|
||||||
|
7. Network Management → network_menu.sh
|
||||||
|
8. Utilities and Tools → utilities_menu.sh
|
||||||
|
h. Help and Info Commands → help_info_menu.sh
|
||||||
|
s. Settings → config_menu.sh
|
||||||
|
0. Exit
|
||||||
|
```
|
||||||
|
|
||||||
|
**Patrón de Ejecución**:
|
||||||
|
```bash
|
||||||
|
exec bash <(curl -s "$REPO_URL/scripts/menus/submenu.sh")
|
||||||
|
```
|
||||||
|
|
||||||
|
Todos los menús descargan y ejecutan scripts desde GitHub en tiempo real.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## **5. Scripts Locales vs Remotos**
|
||||||
|
|
||||||
|
### **Estado Actual**
|
||||||
|
- **Scripts locales**: Están presentes en el repositorio (122 archivos)
|
||||||
|
- **Ejecución**: Siempre desde GitHub mediante `curl`
|
||||||
|
- **Ventaja actual**: Actualizaciones automáticas sin reinstalar
|
||||||
|
- **Desventaja**: Requiere conexión a internet constante
|
||||||
|
|
||||||
|
### **Scripts Principales Disponibles Localmente**
|
||||||
|
|
||||||
|
**Gestión de VMs** (`scripts/vm/`):
|
||||||
|
- `create_vm.sh` - Crear VMs
|
||||||
|
- `synology.sh` (39KB) - Instalación Synology DSM
|
||||||
|
- `zimaos.sh` (40KB) - Instalación ZimaOS
|
||||||
|
- `uupdump_creator.sh` - Creador de ISOs Windows
|
||||||
|
- `select_windows_iso.sh`, `select_linux_iso.sh`, `select_nas_iso.sh`
|
||||||
|
|
||||||
|
**Gestión de LXC** (`scripts/lxc/`):
|
||||||
|
- `lxc-manual-guide.sh` - Guía manual
|
||||||
|
- `lxc-privileged-to-unprivileged.sh`
|
||||||
|
- `lxc-unprivileged-to-privileged.sh`
|
||||||
|
|
||||||
|
**Almacenamiento** (`scripts/storage/`):
|
||||||
|
- `disk-passthrough.sh` - Passthrough disco a VM
|
||||||
|
- `disk-passthrough_ct.sh` - Passthrough disco a LXC (22KB)
|
||||||
|
- `import-disk-image.sh` - Importar imágenes
|
||||||
|
- `format-disk.sh`, `mount-disk-on-host.sh`
|
||||||
|
|
||||||
|
**Compartir Recursos** (`scripts/share/`):
|
||||||
|
- `lxc-mount-manager_minimal.sh` (35KB) - Gestión mount points
|
||||||
|
- `nfs_host.sh` (35KB) - Servidor NFS en host
|
||||||
|
- `samba_host.sh` (52KB) - Servidor Samba en host
|
||||||
|
- `nfs_client.sh`, `samba_client.sh` - Clientes en LXC
|
||||||
|
- `local-shared-manager.sh` - Directorios compartidos locales
|
||||||
|
|
||||||
|
**Post-Instalación** (`scripts/post_install/`):
|
||||||
|
- `auto_post_install.sh` (29KB) - Automatizado sin interacción
|
||||||
|
- `customizable_post_install.sh` (148KB) - Personalizable
|
||||||
|
- `uninstall-tools.sh` (34KB) - Desinstalador
|
||||||
|
|
||||||
|
**Utilidades** (`scripts/utilities/`):
|
||||||
|
- `upgrade_pve8_to_pve9.sh` (35KB) - Upgrade PVE 8→9
|
||||||
|
- `system_utils.sh` (20KB) - Instalador de utilidades
|
||||||
|
- `proxmox_update.sh` - Actualización de Proxmox
|
||||||
|
|
||||||
|
**Red** (`scripts/menus/network_menu.sh`):
|
||||||
|
- 43KB de funcionalidades de red
|
||||||
|
- Optimizaciones para LXC+NFS
|
||||||
|
|
||||||
|
**Global** (`scripts/global/`):
|
||||||
|
- `update-pve.sh`, `update-pve8.sh`, `update-pve9_2.sh`
|
||||||
|
- `remove-banner-pve8.sh`, `remove-banner-pve9.sh`
|
||||||
|
- `share-common.func` (30KB) - Funciones compartidas
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## **6. Sistema de Utilidades: `utils.sh`**
|
||||||
|
|
||||||
|
### **Funciones Principales**
|
||||||
|
|
||||||
|
**Interfaz Visual** (línea 50-71):
|
||||||
|
- Definición de colores ANSI
|
||||||
|
- Códigos de estilo para terminal
|
||||||
|
- Spinner animado (línea 75-88)
|
||||||
|
|
||||||
|
**Mensajes Estandarizados**:
|
||||||
|
- `msg_info()` - Info con spinner
|
||||||
|
- `msg_ok()` - Éxito (checkmark verde)
|
||||||
|
- `msg_error()` - Error (rojo)
|
||||||
|
- `msg_warn()` - Advertencia (amarillo)
|
||||||
|
- `msg_title()` - Títulos
|
||||||
|
- `type_text()` - Efecto máquina de escribir
|
||||||
|
|
||||||
|
**Sistema de Traducción** (línea 232-305):
|
||||||
|
```bash
|
||||||
|
translate() {
|
||||||
|
# Si idioma es "en" → retorna texto original
|
||||||
|
# Busca en caché local (cache.json)
|
||||||
|
# Si no existe → llama a googletrans vía Python
|
||||||
|
# Guarda en caché para futuras traducciones
|
||||||
|
# Limpia prefijos de contexto
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**Contexto de Traducción** (línea 48):
|
||||||
|
```bash
|
||||||
|
TRANSLATION_CONTEXT="Context: Technical message for Proxmox and IT. Translate:"
|
||||||
|
```
|
||||||
|
|
||||||
|
**Logo ASCII** (línea 314-400):
|
||||||
|
- Dos versiones: terminal noVNC y SSH
|
||||||
|
- Detección automática del entorno
|
||||||
|
- Diseño en ASCII art con colores
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## **7. ProxMenux Monitor**
|
||||||
|
|
||||||
|
### **Componente Web (AppImage)**
|
||||||
|
|
||||||
|
**Tecnología**:
|
||||||
|
- **Frontend**: Next.js 14, React 18, TypeScript
|
||||||
|
- **UI**: Radix UI + shadcn/ui + Tailwind CSS
|
||||||
|
- **Gráficos**: Recharts
|
||||||
|
- **Backend**: Flask (Python) para recolección de datos del sistema
|
||||||
|
- **Empaquetado**: AppImage (10.3 MB)
|
||||||
|
|
||||||
|
**Características**:
|
||||||
|
- Dashboard en tiempo real
|
||||||
|
- Monitoreo de CPU, RAM, temperatura
|
||||||
|
- Estado de VMs y LXC containers
|
||||||
|
- Gestión de almacenamiento visual
|
||||||
|
- Estadísticas de red
|
||||||
|
- Logs del sistema
|
||||||
|
- Tema oscuro/claro
|
||||||
|
- Responsive design
|
||||||
|
- Puerto: 8008
|
||||||
|
|
||||||
|
**Servicio Systemd**:
|
||||||
|
```ini
|
||||||
|
[Unit]
|
||||||
|
Description=ProxMenux Monitor - Web Dashboard
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
User=root
|
||||||
|
WorkingDirectory=/usr/local/share/proxmenux
|
||||||
|
ExecStart=/usr/local/share/proxmenux/ProxMenux-Monitor.AppImage
|
||||||
|
Restart=on-failure
|
||||||
|
RestartSec=10
|
||||||
|
Environment="PORT=8008"
|
||||||
|
```
|
||||||
|
|
||||||
|
**Estado**: Se instala automáticamente en ambas versiones (normal y traducción)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## **8. Sistema de Configuración**
|
||||||
|
|
||||||
|
### **Archivos de Configuración**
|
||||||
|
|
||||||
|
**`/usr/local/share/proxmenux/config.json`**:
|
||||||
|
- Estado de instalación de componentes
|
||||||
|
- Idioma seleccionado
|
||||||
|
- Timestamps de instalación
|
||||||
|
- Estados: `installed`, `already_installed`, `failed`
|
||||||
|
|
||||||
|
**Componentes Rastreados** (línea 201):
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"dialog": {"status": "installed", "timestamp": "..."},
|
||||||
|
"curl": {"status": "already_installed", "timestamp": "..."},
|
||||||
|
"jq": {"status": "installed", "timestamp": "..."},
|
||||||
|
"python3": {"status": "installed", "timestamp": "..."},
|
||||||
|
"virtual_environment": {"status": "created", "timestamp": "..."},
|
||||||
|
"googletrans": {"status": "installed", "timestamp": "..."},
|
||||||
|
"proxmenux_monitor": {"status": "installed", "timestamp": "..."},
|
||||||
|
"language": "es"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**`/usr/local/share/proxmenux/cache.json`**:
|
||||||
|
- Traducciones cacheadas (100 KB)
|
||||||
|
- Formato: `{"texto_original": {"es": "traducción", "fr": "traduction"}}`
|
||||||
|
- Reduce llamadas a Google Translate API
|
||||||
|
|
||||||
|
**`/usr/local/share/proxmenux/installed_tools.json`**:
|
||||||
|
- Registro de herramientas post-instalación
|
||||||
|
- Usado por el desinstalador
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## **9. Funcionalidades Destacadas**
|
||||||
|
|
||||||
|
### **Post-Instalación Automatizada**
|
||||||
|
- **Optimizaciones de repositorios**: Limpia duplicados, configura repos gratuitos
|
||||||
|
- **Eliminación de banner de suscripción**: Con respaldo y reversión
|
||||||
|
- **Optimización de memoria y kernel**: Ajustes según RAM disponible
|
||||||
|
- **Log2RAM**: Instalación automática en SSD/NVMe
|
||||||
|
- **Network tuning**: Optimización de stack de red
|
||||||
|
- **Límites del sistema**: Aumenta límites de archivos y procesos
|
||||||
|
- **Configuración de journald**: Ajustada para Log2RAM
|
||||||
|
- **Entropía**: Mejora generación de números aleatorios
|
||||||
|
- **Aliases bash**: Personalización del entorno
|
||||||
|
|
||||||
|
### **Gestión de Compartición de Recursos**
|
||||||
|
**Enfoque**: Mount Points LXC (Host ↔ Container)
|
||||||
|
- Detección automática de tipo de filesystem
|
||||||
|
- Mapeo UID/GID para contenedores unprivileged
|
||||||
|
- Visualización de mount points existentes
|
||||||
|
- Eliminación segura con verificación
|
||||||
|
|
||||||
|
**Configuraciones disponibles**:
|
||||||
|
- NFS: Host, Client LXC, Server LXC
|
||||||
|
- Samba: Host, Client LXC, Server LXC
|
||||||
|
- Directorios locales compartidos
|
||||||
|
|
||||||
|
### **Hardware Especializado**
|
||||||
|
- **Coral TPU**: Instalación de drivers compatible con PVE 8 y 9
|
||||||
|
- **GPUs**: Passthrough y configuración para VMs y LXC
|
||||||
|
- **iGPU**: Configuración para contenedores LXC
|
||||||
|
|
||||||
|
### **Upgrade PVE 8 → 9**
|
||||||
|
- Script de 35 KB con verificaciones exhaustivas
|
||||||
|
- Guía manual interactiva
|
||||||
|
- Checker de compatibilidad
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## **10. Arquitectura de Ejecución**
|
||||||
|
|
||||||
|
### **Patrón de Descarga Dinámica**
|
||||||
|
|
||||||
|
**Todos los scripts siguen este patrón**:
|
||||||
|
```bash
|
||||||
|
exec bash <(curl -s "$REPO_URL/scripts/path/to/script.sh")
|
||||||
|
```
|
||||||
|
|
||||||
|
**Ventajas**:
|
||||||
|
- ✅ Usuarios siempre tienen la última versión
|
||||||
|
- ✅ No requiere reinstalación para actualizaciones
|
||||||
|
- ✅ Hotfixes inmediatos
|
||||||
|
- ✅ Control centralizado de versiones
|
||||||
|
|
||||||
|
**Consideraciones**:
|
||||||
|
- ⚠️ Requiere internet en cada ejecución
|
||||||
|
- ⚠️ Dependencia de disponibilidad de GitHub
|
||||||
|
- ⚠️ No funciona offline
|
||||||
|
- ⚠️ Los scripts locales del repo no se usan directamente
|
||||||
|
|
||||||
|
### **Sistema de Versionado**
|
||||||
|
- `version.txt` en repo: versión remota
|
||||||
|
- `/usr/local/share/proxmenux/version.txt`: versión local instalada
|
||||||
|
- Check en cada ejecución del comando `menu`
|
||||||
|
- Prompt para actualizar si hay nueva versión
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## **11. Flujo de Navegación**
|
||||||
|
|
||||||
|
```
|
||||||
|
Comando: menu
|
||||||
|
↓
|
||||||
|
Verifica actualizaciones
|
||||||
|
↓
|
||||||
|
Carga utils.sh y traducciones
|
||||||
|
↓
|
||||||
|
Descarga main_menu.sh desde GitHub
|
||||||
|
↓
|
||||||
|
Usuario selecciona opción
|
||||||
|
↓
|
||||||
|
Descarga submenu correspondiente desde GitHub
|
||||||
|
↓
|
||||||
|
Usuario selecciona acción
|
||||||
|
↓
|
||||||
|
Descarga y ejecuta script específico desde GitHub
|
||||||
|
↓
|
||||||
|
Retorna al menú anterior
|
||||||
|
```
|
||||||
|
|
||||||
|
**Ejemplo de navegación**:
|
||||||
|
```
|
||||||
|
menu → main_menu.sh
|
||||||
|
→ opción 5: share_menu.sh
|
||||||
|
→ opción 4: lxc-mount-manager_minimal.sh (35KB)
|
||||||
|
→ Ejecuta acciones
|
||||||
|
→ Retorna a share_menu.sh
|
||||||
|
→ opción 0: Retorna a main_menu.sh
|
||||||
|
→ opción 0: Exit
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## **12. Integración con Comunidad**
|
||||||
|
|
||||||
|
### **Scripts de la Comunidad Integrados**
|
||||||
|
|
||||||
|
**Proxmox VE Helper-Scripts**:
|
||||||
|
- Post-install script oficial
|
||||||
|
- Ejecutado desde: `https://github.com/community-scripts/ProxmoxVE`
|
||||||
|
|
||||||
|
**Xshok-proxmox** (fork):
|
||||||
|
- Post-install alternativo
|
||||||
|
- Descarga desde fork de MacRimi
|
||||||
|
|
||||||
|
**Elementos compartidos**:
|
||||||
|
- Funciones de `utils.sh` basadas en Helper-Scripts
|
||||||
|
- Misma filosofía de mensajes estandarizados
|
||||||
|
- Licencia MIT compatible
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## **13. Sistema de Desinstalación**
|
||||||
|
|
||||||
|
### **Función: `uninstall_proxmenux()`** (línea 109-161)
|
||||||
|
|
||||||
|
**Proceso**:
|
||||||
|
1. Confirmación interactiva (whiptail)
|
||||||
|
2. Desinstala googletrans y entorno virtual Python
|
||||||
|
3. Selector de dependencias a eliminar (python3, python3-venv, pip)
|
||||||
|
4. Elimina `/usr/local/bin/menu`
|
||||||
|
5. Elimina `/usr/local/share/proxmenux/`
|
||||||
|
6. Restaura `.bashrc` desde backup
|
||||||
|
7. Restaura `/etc/motd` desde backup
|
||||||
|
|
||||||
|
**Tool-specific uninstaller**: `scripts/post_install/uninstall-tools.sh`
|
||||||
|
- Lee `installed_tools.json`
|
||||||
|
- Permite desinstalar herramientas individualmente
|
||||||
|
- Restaura configuraciones originales
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## **14. Estructura de Archivos JSON**
|
||||||
|
|
||||||
|
### **`json/cache.json`** (100 KB)
|
||||||
|
Traducciones precargadas para acelerar el sistema
|
||||||
|
|
||||||
|
### **`json/helpers_cache.json`** (273 KB)
|
||||||
|
Caché extendido, probablemente para Helper Scripts
|
||||||
|
|
||||||
|
### **`lang/cache.json`** (5.5 KB)
|
||||||
|
Caché de idiomas específico
|
||||||
|
|
||||||
|
### **`lang/en.lang`** y **`lang/es.lang`**
|
||||||
|
Archivos de idioma estáticos (4-5 KB cada uno)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## **15. Resumen de Componentes**
|
||||||
|
|
||||||
|
| Componente | Ubicación | Función |
|
||||||
|
|------------|-----------|---------|
|
||||||
|
| **Instalador** | `install_proxmenux.sh` | Instalación inicial y actualizaciones |
|
||||||
|
| **Comando principal** | `/usr/local/bin/menu` | Punto de entrada del usuario |
|
||||||
|
| **Utilidades** | `/usr/local/share/proxmenux/utils.sh` | Funciones compartidas |
|
||||||
|
| **Configuración** | `/usr/local/share/proxmenux/config.json` | Estado del sistema |
|
||||||
|
| **Caché traducciones** | `/usr/local/share/proxmenux/cache.json` | Traducciones cacheadas |
|
||||||
|
| **Entorno Python** | `/opt/googletrans-env/` | Traducción (solo versión translation) |
|
||||||
|
| **Monitor** | `/usr/local/share/proxmenux/ProxMenux-Monitor.AppImage` | Dashboard web |
|
||||||
|
| **Servicio Monitor** | `/etc/systemd/system/proxmenux-monitor.service` | Servicio systemd |
|
||||||
|
| **Scripts** | GitHub (descarga dinámica) | Todos los scripts funcionales |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## **Conclusión**
|
||||||
|
|
||||||
|
ProxMenuxDotDeb es un **sistema modular de gestión de Proxmox VE** que utiliza una arquitectura híbrida:
|
||||||
|
|
||||||
|
- **Núcleo local**: Comando `menu`, utilidades, sistema de configuración
|
||||||
|
- **Scripts remotos**: Toda la funcionalidad se descarga dinámicamente desde GitHub
|
||||||
|
- **Dashboard web**: AppImage independiente con Next.js + Flask
|
||||||
|
- **Sistema de traducción**: Opcional, basado en Python + googletrans + caché
|
||||||
|
|
||||||
|
El proyecto tiene **122 scripts bash** en el repositorio local que **podrían ejecutarse localmente**, pero actualmente **todos se descargan desde GitHub en tiempo de ejecución**. Esta arquitectura prioriza mantener a los usuarios actualizados sobre la ejecución offline.
|
||||||
699
docs/02.GUIA_MODIFICACION_OFFLINE.md
Normal file
699
docs/02.GUIA_MODIFICACION_OFFLINE.md
Normal file
@@ -0,0 +1,699 @@
|
|||||||
|
# Scripts a Modificar para Ejecución 100% Local
|
||||||
|
|
||||||
|
**Fecha**: 2025-11-01
|
||||||
|
**Objetivo**: Eliminar dependencias de GitHub y permitir ejecución completamente local
|
||||||
|
**Repositorio**: ProxMenuxDotDeb
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Resumen Ejecutivo
|
||||||
|
|
||||||
|
Para que ProxMenux funcione 100% localmente sin depender de GitHub, se deben modificar **47 archivos** en total:
|
||||||
|
|
||||||
|
- **2 archivos principales** (instalador y comando menu)
|
||||||
|
- **13 scripts de menús** (sistema de navegación)
|
||||||
|
- **32 scripts funcionales** (operaciones específicas)
|
||||||
|
|
||||||
|
**Cambios principales**:
|
||||||
|
1. Cambiar `REPO_URL` de GitHub a rutas locales del sistema
|
||||||
|
2. Reemplazar descargas `curl` por ejecución de scripts locales
|
||||||
|
3. Copiar todos los scripts a `/usr/local/share/proxmenux/scripts/` durante instalación
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. Archivos Principales (CRÍTICOS) ⚠️
|
||||||
|
|
||||||
|
### 1.1. `install_proxmenux.sh` (Raíz del repositorio)
|
||||||
|
|
||||||
|
**Líneas a modificar**:
|
||||||
|
- **Línea 37**: `REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"`
|
||||||
|
- **Línea 38**: `UTILS_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main/scripts/utils.sh"`
|
||||||
|
- **Línea 54-57**: Carga de `utils.sh` con curl
|
||||||
|
- **Línea 459-476**: Descarga de archivos con wget (versión normal)
|
||||||
|
- **Línea 583-603**: Descarga de archivos con wget (versión traducción)
|
||||||
|
|
||||||
|
**Cambios necesarios**:
|
||||||
|
```bash
|
||||||
|
# Cambiar URLs a rutas locales
|
||||||
|
REPO_URL="/usr/local/share/proxmenux"
|
||||||
|
UTILS_URL="./scripts/utils.sh"
|
||||||
|
|
||||||
|
# Reemplazar wget por cp
|
||||||
|
# En lugar de descargar, copiar archivos locales del repositorio
|
||||||
|
```
|
||||||
|
|
||||||
|
**Impacto**: 🔴 CRÍTICO - Sin esto, la instalación falla completamente
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 1.2. `menu` (Raíz del repositorio)
|
||||||
|
|
||||||
|
**Líneas a modificar**:
|
||||||
|
- **Línea 34**: `REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"`
|
||||||
|
- **Línea 52**: Verificación de actualizaciones (curl remoto)
|
||||||
|
- **Línea 72**: Descarga de instalador actualizado
|
||||||
|
- **Línea 85**: `exec bash <(curl -fsSL "$REPO_URL/scripts/menus/main_menu.sh")`
|
||||||
|
|
||||||
|
**Cambios necesarios**:
|
||||||
|
```bash
|
||||||
|
# Cambiar a ruta local
|
||||||
|
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
|
||||||
|
|
||||||
|
# Ejecutar localmente
|
||||||
|
exec bash "$LOCAL_SCRIPTS/menus/main_menu.sh"
|
||||||
|
```
|
||||||
|
|
||||||
|
**Impacto**: 🔴 CRÍTICO - Es el punto de entrada del usuario
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. Scripts de Menús (13 archivos)
|
||||||
|
|
||||||
|
### 2.1. `scripts/menus/main_menu.sh` ⭐
|
||||||
|
|
||||||
|
**Modificaciones**:
|
||||||
|
- **Línea 14**: `REPO_URL`
|
||||||
|
- **Línea 57**: curl para reinstalación PVE9
|
||||||
|
- **Líneas 125-135**: Todas las opciones del menú (12 líneas)
|
||||||
|
|
||||||
|
**Comandos a reemplazar**:
|
||||||
|
```bash
|
||||||
|
# Todas estas líneas:
|
||||||
|
exec bash <(curl -s "$REPO_URL/scripts/menus/menu_post_install.sh")
|
||||||
|
exec bash <(curl -s "$REPO_URL/scripts/menus/hw_grafics_menu.sh")
|
||||||
|
exec bash <(curl -s "$REPO_URL/scripts/menus/create_vm_menu.sh")
|
||||||
|
exec bash <(curl -s "$REPO_URL/scripts/menus/storage_menu.sh")
|
||||||
|
exec bash <(curl -s "$REPO_URL/scripts/menus/share_menu.sh")
|
||||||
|
exec bash <(curl -s "$REPO_URL/scripts/menus/menu_Helper_Scripts.sh")
|
||||||
|
exec bash <(curl -s "$REPO_URL/scripts/menus/network_menu.sh")
|
||||||
|
exec bash <(curl -s "$REPO_URL/scripts/menus/utilities_menu.sh")
|
||||||
|
bash <(curl -s "$REPO_URL/scripts/help_info_menu.sh")
|
||||||
|
exec bash <(curl -s "$REPO_URL/scripts/menus/config_menu.sh")
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 2.2. `scripts/menus/menu_post_install.sh`
|
||||||
|
|
||||||
|
**Modificaciones**:
|
||||||
|
- **Línea 12**: `REPO_URL`
|
||||||
|
- **Línea 73**: `bash <(curl -s $REPO_URL/scripts/post_install/auto_post_install.sh)`
|
||||||
|
- **Línea 171**: `exec bash <(curl -s "$REPO_URL/scripts/menus/main_menu.sh")`
|
||||||
|
|
||||||
|
**Nota**: Mantener URLs remotas para scripts de comunidad externa (líneas 90-91)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 2.3. `scripts/menus/config_menu.sh`
|
||||||
|
|
||||||
|
**Modificaciones**:
|
||||||
|
- **Línea 13**: `REPO_URL`
|
||||||
|
- No tiene llamadas curl ✅
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 2.4. `scripts/menus/create_vm_menu.sh`
|
||||||
|
|
||||||
|
**Modificaciones**:
|
||||||
|
- **Línea 13**: `REPO_URL`
|
||||||
|
- Múltiples `exec bash <(curl -s ...)` en opciones del menú
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 2.5. `scripts/menus/hw_grafics_menu.sh`
|
||||||
|
|
||||||
|
**Modificaciones**:
|
||||||
|
- **Línea 13**: `REPO_URL`
|
||||||
|
- **Líneas 38, 44, 50, 55, 56**: Llamadas curl
|
||||||
|
|
||||||
|
**Comandos a reemplazar**:
|
||||||
|
```bash
|
||||||
|
bash <(curl -s "$REPO_URL/scripts/configure_igpu_lxc.sh")
|
||||||
|
bash <(curl -s "$REPO_URL/scripts/install_coral_lxc.sh")
|
||||||
|
bash <(curl -s "$REPO_URL/scripts/gpu_tpu/install_coral_pve9.sh")
|
||||||
|
exec bash <(curl -s "$REPO_URL/scripts/menus/main_menu.sh")
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 2.6. `scripts/menus/lxc_menu.sh`
|
||||||
|
|
||||||
|
**Modificaciones**:
|
||||||
|
- **Línea 13**: `REPO_URL`
|
||||||
|
- Todos los `exec bash <(curl ...)`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 2.7. `scripts/menus/menu_Helper_Scripts.sh`
|
||||||
|
|
||||||
|
**Modificaciones**:
|
||||||
|
- **Línea 13**: `REPO_URL`
|
||||||
|
- **Línea 296**: `exec bash <(curl -s ...)`
|
||||||
|
|
||||||
|
**Nota**: Mantener URLs de Helper-Scripts externos (comunidad)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 2.8. `scripts/menus/network_menu.sh`
|
||||||
|
|
||||||
|
**Modificaciones**:
|
||||||
|
- **Línea 13**: `REPO_URL`
|
||||||
|
- **Línea 1085**: `exec bash <(curl -s "$REPO_URL/scripts/menus/main_menu.sh")`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 2.9. `scripts/menus/share_menu.sh`
|
||||||
|
|
||||||
|
**Modificaciones**:
|
||||||
|
- **Línea 13**: `REPO_URL`
|
||||||
|
- **Líneas 46, 55-82, 85**: 11 llamadas curl
|
||||||
|
|
||||||
|
**Comandos a reemplazar**:
|
||||||
|
```bash
|
||||||
|
bash <(curl -s "$REPO_URL/scripts/share/nfs_host.sh")
|
||||||
|
bash <(curl -s "$REPO_URL/scripts/share/samba_host.sh")
|
||||||
|
bash <(curl -s "$REPO_URL/scripts/share/local-shared-manager.sh")
|
||||||
|
bash <(curl -s "$REPO_URL/scripts/share/lxc-mount-manager_minimal.sh")
|
||||||
|
bash <(curl -s "$REPO_URL/scripts/share/nfs_client.sh")
|
||||||
|
bash <(curl -s "$REPO_URL/scripts/share/samba_client.sh")
|
||||||
|
bash <(curl -s "$REPO_URL/scripts/share/nfs_lxc_server.sh")
|
||||||
|
bash <(curl -s "$REPO_URL/scripts/share/samba_lxc_server.sh")
|
||||||
|
bash <(curl -s "$REPO_URL/scripts/share/commands_share.sh")
|
||||||
|
exec bash <(curl -s "$REPO_URL/scripts/menus/main_menu.sh") # 2 veces
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 2.10. `scripts/menus/storage_menu.sh`
|
||||||
|
|
||||||
|
**Modificaciones**:
|
||||||
|
- **Línea 15**: `REPO_URL`
|
||||||
|
- **Líneas 39, 42, 45, 48, 51**: 5 llamadas curl
|
||||||
|
|
||||||
|
**Comandos a reemplazar**:
|
||||||
|
```bash
|
||||||
|
bash <(curl -s "$REPO_URL/scripts/storage/disk-passthrough.sh")
|
||||||
|
bash <(curl -s "$REPO_URL/scripts/storage/disk-passthrough_ct.sh")
|
||||||
|
bash <(curl -s "$REPO_URL/scripts/storage/import-disk-image.sh")
|
||||||
|
exec bash <(curl -s "$REPO_URL/scripts/menus/main_menu.sh") # 2 veces
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 2.11. `scripts/menus/utilities_menu.sh`
|
||||||
|
|
||||||
|
**Modificaciones**:
|
||||||
|
- **Línea 15**: `REPO_URL`
|
||||||
|
- **Líneas 39, 45, 67, 74, 79, 80**: 6 llamadas curl
|
||||||
|
|
||||||
|
**Comandos a reemplazar**:
|
||||||
|
```bash
|
||||||
|
bash <(curl -s "$REPO_URL/scripts/utilities/uup_dump_iso_creator.sh")
|
||||||
|
bash <(curl -s "$REPO_URL/scripts/utilities/system_utils.sh")
|
||||||
|
bash <(curl -s "$REPO_URL/scripts/utilities/proxmox_update.sh")
|
||||||
|
bash <(curl -s "$REPO_URL/scripts/utilities/upgrade_pve8_to_pve9.sh")
|
||||||
|
exec bash <(curl -s "$REPO_URL/scripts/menus/main_menu.sh") # 2 veces
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 2.12. `scripts/menus/main_menu_.sh`
|
||||||
|
|
||||||
|
**Modificaciones**: Igual que `main_menu.sh` (archivo alternativo/backup)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 2.13. `scripts/menus/sm.sh`
|
||||||
|
|
||||||
|
**Modificaciones**: Igual que `share_menu.sh` (archivo alternativo)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. Scripts Post-Instalación (3 archivos)
|
||||||
|
|
||||||
|
### 3.1. `scripts/post_install/auto_post_install.sh`
|
||||||
|
|
||||||
|
**Modificaciones**:
|
||||||
|
- **Línea 39**: `REPO_URL`
|
||||||
|
- **Línea 110**: `bash <(curl -fsSL "$REPO_URL/scripts/global/update-pve9_2.sh")`
|
||||||
|
- **Línea 113**: `bash <(curl -fsSL "$REPO_URL/scripts/global/update-pve8.sh")`
|
||||||
|
- **Línea 150**: `bash <(curl -fsSL "$REPO_URL/scripts/global/remove-banner-pve-v3.sh")`
|
||||||
|
- **Línea 157**: `bash <(curl -fsSL "$REPO_URL/scripts/global/remove-banner-pve8.sh")`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 3.2. `scripts/post_install/customizable_post_install.sh`
|
||||||
|
|
||||||
|
**Modificaciones**:
|
||||||
|
- **Línea 39**: `REPO_URL`
|
||||||
|
- **Línea 197**: `bash <(curl -fsSL "$REPO_URL/scripts/global/update-pve9_2.sh")`
|
||||||
|
- **Línea 200**: `bash <(curl -fsSL "$REPO_URL/scripts/global/update-pve8.sh")`
|
||||||
|
- **Línea 2905**: `bash <(curl -fsSL "$REPO_URL/scripts/global/remove-banner-pve-v3.sh")`
|
||||||
|
- **Línea 2908**: `bash <(curl -fsSL "$REPO_URL/scripts/global/remove-banner-pve8.sh")`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 3.3. `scripts/post_install/uninstall-tools.sh`
|
||||||
|
|
||||||
|
**Modificaciones**: Solo lectura de configs locales ✅
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. Scripts de VMs (8 archivos)
|
||||||
|
|
||||||
|
### 4.1. `scripts/vm/create_vm.sh`
|
||||||
|
|
||||||
|
**Modificaciones**:
|
||||||
|
- **Línea 29**: `REPO_URL`
|
||||||
|
- **Líneas 30-32**: `VM_REPO`, `ISO_REPO`, `MENU_REPO`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 4.2. `scripts/vm/select_linux_iso.sh`
|
||||||
|
|
||||||
|
**Modificaciones**:
|
||||||
|
- **Línea 28**: `REPO_URL`
|
||||||
|
- **Línea 222**: `exec bash <(curl -s "$REPO_URL/scripts/vm/create_vm.sh")`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 4.3. `scripts/vm/select_windows_iso.sh`
|
||||||
|
|
||||||
|
**Modificaciones**:
|
||||||
|
- **Línea 27**: `REPO_URL`
|
||||||
|
- **Línea 28**: `UUP_REPO`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 4.4. `scripts/vm/select_nas_iso.sh`
|
||||||
|
|
||||||
|
**Modificaciones**:
|
||||||
|
- **Línea 31**: `REPO_URL`
|
||||||
|
- **Línea 65**: `bash <(curl -s "$REPO_URL/scripts/vm/synology.sh")`
|
||||||
|
- **Línea 106**: `bash <(curl -s "$REPO_URL/scripts/vm/zimaos.sh")`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 4.5. `scripts/vm/synology.sh`
|
||||||
|
|
||||||
|
**Modificaciones**:
|
||||||
|
- **Línea 32**: `REPO_URL`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 4.6. `scripts/vm/synology_.sh`
|
||||||
|
|
||||||
|
**Modificaciones**:
|
||||||
|
- **Línea 32**: `REPO_URL`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 4.7. `scripts/vm/zimaos.sh`
|
||||||
|
|
||||||
|
**Modificaciones**:
|
||||||
|
- Verificar si tiene `REPO_URL`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 4.8. `scripts/vm/vm_creator.sh`
|
||||||
|
|
||||||
|
**Modificaciones**:
|
||||||
|
- **Línea 497**: `bash <(curl -fsSL "$REPO_URL/scripts/menus/create_vm_menu.sh")`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. Scripts de LXC (4 archivos)
|
||||||
|
|
||||||
|
### 5.1. `scripts/lxc/lxc-manual-guide.sh`
|
||||||
|
|
||||||
|
**Modificaciones**:
|
||||||
|
- **Línea 14**: `REPO_URL`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 5.2. `scripts/lxc/lxc-privileged-to-unprivileged.sh`
|
||||||
|
|
||||||
|
**Modificaciones**:
|
||||||
|
- **Línea 18**: `REPO_URL`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 5.3. `scripts/lxc/lxc-unprivileged-to-privileged.sh`
|
||||||
|
|
||||||
|
**Modificaciones**:
|
||||||
|
- **Línea 19**: `REPO_URL`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 5.4. `scripts/lxc/lxc-mount-manager_minimal.sh`
|
||||||
|
|
||||||
|
**Modificaciones**:
|
||||||
|
- Verificar si tiene `REPO_URL`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 6. Scripts de Compartir Recursos (9 archivos)
|
||||||
|
|
||||||
|
### 6.1. `scripts/share/nfs_host.sh`
|
||||||
|
|
||||||
|
**Modificaciones**:
|
||||||
|
- **Línea 16**: `REPO_URL`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 6.2. `scripts/share/nfs_client.sh`
|
||||||
|
|
||||||
|
**Modificaciones**:
|
||||||
|
- **Línea 16**: `REPO_URL`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 6.3. `scripts/share/nfs_lxc_server.sh`
|
||||||
|
|
||||||
|
**Modificaciones**:
|
||||||
|
- **Línea 16**: `REPO_URL`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 6.4. `scripts/share/samba_host.sh`
|
||||||
|
|
||||||
|
**Modificaciones**:
|
||||||
|
- **Línea 16**: `REPO_URL`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 6.5. `scripts/share/samba_client.sh`
|
||||||
|
|
||||||
|
**Modificaciones**:
|
||||||
|
- **Línea 18**: `REPO_URL`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 6.6. `scripts/share/samba_lxc_server.sh`
|
||||||
|
|
||||||
|
**Modificaciones**:
|
||||||
|
- **Línea 16**: `REPO_URL`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 6.7. `scripts/share/local-shared-manager.sh`
|
||||||
|
|
||||||
|
**Modificaciones**:
|
||||||
|
- **Línea 13**: `REPO_URL`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 6.8. `scripts/share/lxc-mount-manager_minimal.sh`
|
||||||
|
|
||||||
|
**Modificaciones**:
|
||||||
|
- Verificar `REPO_URL`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 6.9. `scripts/share/commands_share.sh`
|
||||||
|
|
||||||
|
**Modificaciones**:
|
||||||
|
- **Línea 14**: `REPO_URL`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 7. Scripts de Almacenamiento (3 archivos)
|
||||||
|
|
||||||
|
### 7.1. `scripts/storage/disk-passthrough.sh`
|
||||||
|
|
||||||
|
**Modificaciones**:
|
||||||
|
- Verificar `REPO_URL`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 7.2. `scripts/storage/disk-passthrough_ct.sh`
|
||||||
|
|
||||||
|
**Modificaciones**:
|
||||||
|
- Verificar `REPO_URL`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 7.3. `scripts/storage/import-disk-image.sh`
|
||||||
|
|
||||||
|
**Modificaciones**:
|
||||||
|
- **Línea 30**: `REPO_URL`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 8. Scripts de Utilidades (4 archivos)
|
||||||
|
|
||||||
|
### 8.1. `scripts/utilities/upgrade_pve8_to_pve9.sh`
|
||||||
|
|
||||||
|
**Modificaciones**:
|
||||||
|
- Verificar `REPO_URL`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 8.2. `scripts/utilities/system_utils.sh`
|
||||||
|
|
||||||
|
**Modificaciones**:
|
||||||
|
- Verificar `REPO_URL`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 8.3. `scripts/utilities/proxmox_update.sh`
|
||||||
|
|
||||||
|
**Modificaciones**:
|
||||||
|
- Verificar `REPO_URL`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 8.4. `scripts/utilities/uup_dump_iso_creator.sh`
|
||||||
|
|
||||||
|
**Modificaciones**:
|
||||||
|
- Verificar `REPO_URL`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 9. Scripts Globales (3 archivos)
|
||||||
|
|
||||||
|
### 9.1. `scripts/global/update-pve.sh`
|
||||||
|
|
||||||
|
**Modificaciones**:
|
||||||
|
- **Línea 32**: `source <(curl -s "$REPO_URL/scripts/global/common-functions.sh")`
|
||||||
|
|
||||||
|
**Cambiar a**:
|
||||||
|
```bash
|
||||||
|
source "$LOCAL_SCRIPTS/global/common-functions.sh"
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 9.2. `scripts/global/update-pve8.sh`
|
||||||
|
|
||||||
|
**Modificaciones**:
|
||||||
|
- **Línea 32**: `source <(curl -s "$REPO_URL/scripts/global/common-functions.sh")`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 9.3. `scripts/global/update-pve9_2.sh`
|
||||||
|
|
||||||
|
**Modificaciones**:
|
||||||
|
- **Línea 32**: `source <(curl -s "$REPO_URL/scripts/global/common-functions.sh")`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 10. Scripts de Hardware (2 archivos)
|
||||||
|
|
||||||
|
### 10.1. `scripts/configure_igpu_lxc.sh`
|
||||||
|
|
||||||
|
**Modificaciones**:
|
||||||
|
- **Línea 19**: `REPO_URL`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 10.2. `scripts/install_coral_lxc.sh`
|
||||||
|
|
||||||
|
**Modificaciones**:
|
||||||
|
- **Línea 25**: `REPO_URL`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 11. Scripts de Red (2 archivos)
|
||||||
|
|
||||||
|
### 11.1. `scripts/repair_network.sh`
|
||||||
|
|
||||||
|
**Modificaciones**:
|
||||||
|
- **Línea 204**: `exec bash <(curl -s "$REPO_URL/scripts/menus/main_menu.sh")`
|
||||||
|
- **Línea 205**: `exec bash <(curl -s "$REPO_URL/scripts/menus/main_menu.sh")`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 11.2. `scripts/telegram-notifier.sh`
|
||||||
|
|
||||||
|
**Modificaciones**:
|
||||||
|
- **Línea 5**: `REPO_URL`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 12. Scripts Duplicados/Alternos (en `scripts/auto_post_install.sh`)
|
||||||
|
|
||||||
|
**Modificaciones**: Igual que `scripts/post_install/auto_post_install.sh`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Tabla Resumen
|
||||||
|
|
||||||
|
| Categoría | Archivos | Modificaciones Principales |
|
||||||
|
|-----------|----------|---------------------------|
|
||||||
|
| **Principales** | 2 | REPO_URL + curl → rutas locales |
|
||||||
|
| **Menús** | 13 | REPO_URL + exec bash curl |
|
||||||
|
| **Post-Install** | 3 | bash curl a scripts global |
|
||||||
|
| **VMs** | 8 | REPO_URL + llamadas remotas |
|
||||||
|
| **LXC** | 4 | REPO_URL |
|
||||||
|
| **Share** | 9 | REPO_URL |
|
||||||
|
| **Storage** | 3 | REPO_URL |
|
||||||
|
| **Utilities** | 4 | REPO_URL |
|
||||||
|
| **Global** | 3 | source curl |
|
||||||
|
| **Hardware** | 2 | REPO_URL |
|
||||||
|
| **Red** | 2 | exec bash curl |
|
||||||
|
| **TOTAL** | **47** | **~150-200 líneas** |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Plan de Implementación Recomendado
|
||||||
|
|
||||||
|
### Paso 1: Preparación
|
||||||
|
```bash
|
||||||
|
# Crear backup
|
||||||
|
cp -r . ../ProxMenuxDotDeb_backup
|
||||||
|
|
||||||
|
# --------------------------------------------------------------------
|
||||||
|
# Documentar información relevante del proyecto en directorio "docs"
|
||||||
|
# --------------------------------------------------------------------
|
||||||
|
```
|
||||||
|
|
||||||
|
### Paso 2: Modificación Automática Global
|
||||||
|
```bash
|
||||||
|
# Script de conversión masiva
|
||||||
|
find . -name "*.sh" -o -name "menu" | xargs sed -i \
|
||||||
|
's|REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"|LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"|g'
|
||||||
|
|
||||||
|
# Cambiar referencias
|
||||||
|
find . -name "*.sh" -o -name "menu" | xargs sed -i \
|
||||||
|
's|\$REPO_URL/scripts|\$LOCAL_SCRIPTS|g'
|
||||||
|
|
||||||
|
# Cambiar bash curl
|
||||||
|
find . -name "*.sh" -o -name "menu" | xargs sed -i -E \
|
||||||
|
's|bash <\(curl -[sfSL]+ "\$REPO_URL/([^"]+)"|bash "\$LOCAL_SCRIPTS/\1"|g'
|
||||||
|
|
||||||
|
# Cambiar exec bash curl
|
||||||
|
find . -name "*.sh" -o -name "menu" | xargs sed -i -E \
|
||||||
|
's|exec bash <\(curl -[sfSL]+ "\$REPO_URL/([^"]+)"|exec bash "\$LOCAL_SCRIPTS/\1"|g'
|
||||||
|
|
||||||
|
# Cambiar source curl
|
||||||
|
find . -name "*.sh" | xargs sed -i -E \
|
||||||
|
's|source <\(curl -[sfSL]+ "\$REPO_URL/([^"]+)"|source "\$LOCAL_SCRIPTS/\1"|g'
|
||||||
|
```
|
||||||
|
|
||||||
|
### Paso 3: Modificar install_proxmenux.sh manualmente
|
||||||
|
|
||||||
|
Cambiar secciones de descarga wget por copias locales:
|
||||||
|
```bash
|
||||||
|
# En lugar de:
|
||||||
|
wget -qO "$dest" "$url"
|
||||||
|
|
||||||
|
# Usar:
|
||||||
|
cp "./scripts/utils.sh" "$UTILS_FILE"
|
||||||
|
cp "./menu" "$INSTALL_DIR/$MENU_SCRIPT"
|
||||||
|
cp "./version.txt" "$LOCAL_VERSION_FILE"
|
||||||
|
```
|
||||||
|
|
||||||
|
Agregar copia de todos los scripts:
|
||||||
|
```bash
|
||||||
|
msg_info "Copying local scripts..."
|
||||||
|
mkdir -p "$BASE_DIR/scripts"
|
||||||
|
cp -r "./scripts/"* "$BASE_DIR/scripts/"
|
||||||
|
chmod -R +x "$BASE_DIR/scripts/"
|
||||||
|
```
|
||||||
|
|
||||||
|
### Paso 4: Modificar comando menu
|
||||||
|
|
||||||
|
Comentar o modificar verificación de actualizaciones remotas.
|
||||||
|
|
||||||
|
### Paso 5: Validación
|
||||||
|
```bash
|
||||||
|
# Verificar que no queden referencias remotas
|
||||||
|
grep -r "githubusercontent.com" . --include="*.sh" --include="menu"
|
||||||
|
|
||||||
|
# Verificar llamadas curl
|
||||||
|
grep -r "curl.*REPO_URL" . --include="*.sh" --include="menu"
|
||||||
|
|
||||||
|
# Contar archivos modificados
|
||||||
|
grep -r "LOCAL_SCRIPTS=" . --include="*.sh" --include="menu" | wc -l
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Estructura Post-Modificación
|
||||||
|
|
||||||
|
```
|
||||||
|
/usr/local/share/proxmenux/
|
||||||
|
├── utils.sh
|
||||||
|
├── config.json
|
||||||
|
├── cache.json
|
||||||
|
├── version.txt
|
||||||
|
├── ProxMenux-Monitor.AppImage
|
||||||
|
└── scripts/ # ⭐ NUEVO
|
||||||
|
├── menus/
|
||||||
|
│ ├── main_menu.sh
|
||||||
|
│ ├── menu_post_install.sh
|
||||||
|
│ └── ...
|
||||||
|
├── post_install/
|
||||||
|
├── vm/
|
||||||
|
├── lxc/
|
||||||
|
├── storage/
|
||||||
|
├── share/
|
||||||
|
├── utilities/
|
||||||
|
├── global/
|
||||||
|
└── gpu_tpu/
|
||||||
|
|
||||||
|
/usr/local/bin/
|
||||||
|
└── menu
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Consideraciones Especiales
|
||||||
|
|
||||||
|
### Scripts Externos de la Comunidad
|
||||||
|
Mantener URLs remotas para:
|
||||||
|
- Proxmox VE Helper-Scripts (community-scripts)
|
||||||
|
- xshok-proxmox scripts
|
||||||
|
|
||||||
|
### ProxMenux Monitor
|
||||||
|
El AppImage se mantiene descargable desde GitHub durante la instalación inicial (10 MB).
|
||||||
|
|
||||||
|
### Sistema de Actualizaciones
|
||||||
|
Opciones:
|
||||||
|
1. Deshabilitar completamente
|
||||||
|
2. Mostrar mensaje para ejecutar `install_proxmenux.sh` manualmente
|
||||||
|
3. Sistema híbrido (check opcional remoto)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Checklist de Validación
|
||||||
|
|
||||||
|
- [x] Backup completo del repositorio
|
||||||
|
- [ ] Conversión automática ejecutada
|
||||||
|
- [ ] `install_proxmenux.sh` modificado
|
||||||
|
- [ ] `menu` modificado
|
||||||
|
- [ ] Scripts de menús verificados
|
||||||
|
- [ ] Sin referencias a githubusercontent.com
|
||||||
|
- [ ] Sin llamadas curl a REPO_URL
|
||||||
|
- [ ] Instalación local funcional
|
||||||
|
- [ ] Navegación por todos los menús OK
|
||||||
|
- [ ] Ejecución offline confirmada
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Total de archivos a modificar**: 47
|
||||||
|
**Líneas estimadas**: ~150-200
|
||||||
|
**Tiempo estimado**: 2-4 horas
|
||||||
|
**Riesgo**: Medio (requiere testing)
|
||||||
|
**Beneficio**: Sistema completamente offline
|
||||||
Reference in New Issue
Block a user