Merge branch 'ProxMenux-Offline'

This commit is contained in:
cod378
2025-11-03 03:54:10 +00:00
81 changed files with 1526 additions and 342 deletions

512
docs/01.PROXMENUX_REVIEW.md Normal file
View 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.

View 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
- [ok] Backup completo del repositorio
- [ok] Conversión automática ejecutada
- [ok] `install_proxmenux.sh` modificado
- [ok] `menu` modificado
- [ip] 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

97
install_proxmenux.sh Normal file → Executable file
View File

@@ -34,8 +34,8 @@
# ==========================================================
# Configuration ============================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
UTILS_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main/scripts/utils.sh"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
# UTILS_URL - No longer used in local version (now loaded from ./scripts/utils.sh)
INSTALL_DIR="/usr/local/bin"
BASE_DIR="/usr/local/share/proxmenux"
CONFIG_FILE="$BASE_DIR/config.json"
@@ -51,8 +51,11 @@ MONITOR_INSTALL_PATH="$BASE_DIR/ProxMenux-Monitor.AppImage"
MONITOR_SERVICE_FILE="/etc/systemd/system/proxmenux-monitor.service"
MONITOR_PORT=8008
if ! source <(curl -sSf "$UTILS_URL"); then
echo "Error: Could not load utils.sh from $UTILS_URL"
# Load utils.sh from local repository
if [[ -f "./scripts/utils.sh" ]]; then
source "./scripts/utils.sh"
else
echo "Error: Could not load utils.sh from local path"
exit 1
fi
@@ -325,7 +328,7 @@ install_proxmenux_monitor() {
fi
# Download AppImage silently
if ! wget -q -O "$MONITOR_INSTALL_PATH" "$MONITOR_APPIMAGE_URL" 2>&1; then
if ! wget -q -O "$MONITOR_INSTALL_PATH" "$MONITOR_APPIMAGE_URL" 2>/dev/null; then
msg_warn "Failed to download ProxMenux Monitor from GitHub."
msg_info "You can install it manually later when available."
return 1
@@ -339,7 +342,7 @@ install_proxmenux_monitor() {
rm -f "$sha256_file"
else
# Verify SHA256 silently
local expected_hash=$(cat "$sha256_file" | awk '{print $1}')
local expected_hash=$(cat "$sha256_file" | grep -Eo '^[a-f0-9]+' | tr -d '\n')
local actual_hash=$(sha256sum "$MONITOR_INSTALL_PATH" | awk '{print $1}')
if [ "$expected_hash" != "$actual_hash" ]; then
@@ -388,7 +391,7 @@ EOF
systemctl start proxmenux-monitor.service > /dev/null 2>&1
# Wait a moment for service to start
sleep 2
sleep 3
# Check if service is running
if systemctl is-active --quiet proxmenux-monitor.service; then
@@ -396,7 +399,10 @@ EOF
update_config "proxmenux_monitor" "installed"
return 0
else
msg_warn "ProxMenux Monitor service failed to start. Check logs with: journalctl -u proxmenux-monitor"
msg_warn "ProxMenux Monitor service failed to start."
msg_info "Check logs with: journalctl -u proxmenux-monitor -n 20"
msg_info "Check status with: systemctl status proxmenux-monitor"
update_config "proxmenux_monitor" "failed"
return 1
fi
}
@@ -406,7 +412,7 @@ install_normal_version() {
local total_steps=4
local current_step=1
show_progress $current_step $total_steps "Installing basic dependencies"
show_progress $current_step $total_steps "Installing basic dependencies."
if ! command -v jq > /dev/null 2>&1; then
# Try installing from APT (silently)
@@ -466,25 +472,22 @@ install_normal_version() {
msg_ok "Directories and configuration created."
((current_step++))
show_progress $current_step $total_steps "Downloading necessary files"
FILES=(
"$UTILS_FILE $REPO_URL/scripts/utils.sh"
"$INSTALL_DIR/$MENU_SCRIPT $REPO_URL/$MENU_SCRIPT"
"$LOCAL_VERSION_FILE $REPO_URL/version.txt"
)
for file in "${FILES[@]}"; do
IFS=" " read -r dest url <<< "$file"
sleep 2
if wget -qO "$dest" "$url"; then
msg_ok "${dest##*/} downloaded successfully."
else
msg_error "Failed to download ${dest##*/}. Check your Internet connection."
return 1
fi
done
show_progress $current_step $total_steps "Copying necessary files"
# Note: Previous version downloaded from GitHub, now using local files
### Copy files from local scripts directory
cp "./scripts/utils.sh" "$UTILS_FILE"
cp "./menu" "$INSTALL_DIR/$MENU_SCRIPT"
cp "./version.txt" "$LOCAL_VERSION_FILE"
cp "./install_proxmenux.sh" "$BASE_DIR/install_proxmenux.sh"
mkdir -p "$BASE_DIR/scripts"
cp -r "./scripts/"* "$BASE_DIR/scripts/"
chmod -R +x "$BASE_DIR/scripts/"
chmod +x "$BASE_DIR/install_proxmenux.sh"
msg_ok "Necessary files created."
###
chmod +x "$INSTALL_DIR/$MENU_SCRIPT"
((current_step++))
@@ -493,6 +496,8 @@ install_normal_version() {
if install_proxmenux_monitor; then
create_monitor_service
fi
msg_ok "ProxMenux Normal Version installation completed successfully."
}
####################################################
@@ -589,30 +594,26 @@ install_translation_version() {
deactivate
((current_step++))
show_progress $current_step $total_steps "Downloading necessary files"
show_progress $current_step $total_steps "Copying necessary files"
mkdir -p "$BASE_DIR"
mkdir -p "$INSTALL_DIR"
FILES=(
"$CACHE_FILE $REPO_URL/json/cache.json"
"$UTILS_FILE $REPO_URL/scripts/utils.sh"
"$INSTALL_DIR/$MENU_SCRIPT $REPO_URL/$MENU_SCRIPT"
"$LOCAL_VERSION_FILE $REPO_URL/version.txt"
)
### Copy files from local scripts directory
cp "./json/cache.json" "$CACHE_FILE"
msg_ok "Cache file copied with translations."
for file in "${FILES[@]}"; do
IFS=" " read -r dest url <<< "$file"
sleep 2
if wget -qO "$dest" "$url"; then
if [[ "$dest" == "$CACHE_FILE" ]]; then
msg_ok "Cache file updated with latest translations."
fi
else
msg_error "Failed to download ${dest##*/}. Check your Internet connection."
return 1
fi
done
cp "./scripts/utils.sh" "$UTILS_FILE"
cp "./menu" "$INSTALL_DIR/$MENU_SCRIPT"
cp "./version.txt" "$LOCAL_VERSION_FILE"
cp "./install_proxmenux.sh" "$BASE_DIR/install_proxmenux.sh"
mkdir -p "$BASE_DIR/scripts"
cp -r "./scripts/"* "$BASE_DIR/scripts/"
chmod -R +x "$BASE_DIR/scripts/"
chmod +x "$BASE_DIR/install_proxmenux.sh"
msg_ok "Necessary files created."
###
chmod +x "$INSTALL_DIR/$MENU_SCRIPT"
@@ -622,6 +623,8 @@ install_translation_version() {
if install_proxmenux_monitor; then
create_monitor_service
fi
msg_ok "ProxMenux Translation Version installation completed successfully."
}
####################################################
@@ -715,7 +718,7 @@ install_proxmenux() {
if systemctl is-active --quiet proxmenux-monitor.service; then
local server_ip=$(get_server_ip)
echo -e "${GN}🌐 $(translate "ProxMenux Monitor activated")${CL}: ${BL}http://${server_ip}:${MONITOR_PORT}${CL}"
echo -e "${GN}🌐 $(translate "ProxMenux Monitor activated")${CL}: ${BL}http://${server_ip}:${MONITOR_PORT}${CL}"
echo
fi

13
menu
View File

@@ -31,7 +31,7 @@
# Configuration ============================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
CONFIG_FILE="$BASE_DIR/config.json"
CACHE_FILE="$BASE_DIR/cache.json"
@@ -44,7 +44,10 @@ if [[ -f "$UTILS_FILE" ]]; then
fi
# =========================================================
# For now, update is not available in the local version.
# Take in mind that in future versions, updates must be
# a warning to update the .deb package
# =========================================================
check_updates() {
local INSTALL_SCRIPT="$BASE_DIR/install_proxmenux.sh"
@@ -80,13 +83,13 @@ check_updates() {
}
main_menu() {
exec bash <(curl -fsSL "$REPO_URL/scripts/menus/main_menu.sh")
exec bash "$LOCAL_SCRIPTS/menus/main_menu.sh"
}
load_language
initialize_cache
check_updates
# Check updates doesn't make sense in offline mode
# check_updates
main_menu

View File

@@ -31,12 +31,12 @@
# - Translation support: Multi-language compatible through ProxMenux framework
# - Rollback compatibility: All optimizations can be reversed using the uninstall script
#
# This script is based on the post-install script cutotomizable
# This script is based on the post-install script customizable
# ==========================================================
# Configuration
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"
@@ -99,7 +99,7 @@ lvm_repair_check() {
done
msg_ok "$(translate "LVM PV headers check completed")"
register_tool "lvm_repair" true
}
# ==========================================================
@@ -257,7 +257,7 @@ apt_upgrade() {
if [ "$total_packages" -eq 0 ]; then
total_packages=1
fi
msg_ok "$(translate "Packages upgrade successfull")"
msg_ok "$(translate "Packages upgrade successful")"
tput civis
tput sc
@@ -748,8 +748,9 @@ install_log2ram_auto() {
return 1
fi
# Detect RAM
RAM_SIZE_GB=$(free -g | awk '/^Mem:/{print $2}')
# Detect RAM (in MB first for better accuracy)
RAM_SIZE_MB=$(free -m | awk '/^Mem:/{print $2}')
RAM_SIZE_GB=$((RAM_SIZE_MB / 1024))
[[ -z "$RAM_SIZE_GB" || "$RAM_SIZE_GB" -eq 0 ]] && RAM_SIZE_GB=4
if (( RAM_SIZE_GB <= 8 )); then
@@ -773,7 +774,13 @@ install_log2ram_auto() {
cat << 'EOF' > /usr/local/bin/log2ram-check.sh
#!/bin/bash
CONF_FILE="/etc/log2ram.conf"
LIMIT_KB=$(grep '^SIZE=' "$CONF_FILE" | cut -d'=' -f2 | tr -d 'M')000
SIZE_VALUE=$(grep '^SIZE=' "$CONF_FILE" | cut -d'=' -f2)
# Convert to KB: handle M (megabytes) and G (gigabytes)
if [[ "$SIZE_VALUE" == *"G" ]]; then
LIMIT_KB=$(($(echo "$SIZE_VALUE" | tr -d 'G') * 1024 * 1024))
else
LIMIT_KB=$(($(echo "$SIZE_VALUE" | tr -d 'M') * 1024))
fi
USED_KB=$(df /var/log --output=used | tail -1)
THRESHOLD=$(( LIMIT_KB * 90 / 100 ))
if (( USED_KB > THRESHOLD )); then

View File

@@ -1,7 +1,7 @@
#!/usr/bin/env bash
# Configuration ============================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"
@@ -16,7 +16,7 @@ initialize_cache
get_external_backup_mount_point() {
local BACKUP_MOUNT_FILE="/usr/local/share/proxmenux/last_backup_mount.txt"
local STORAGE_REPO="$REPO_URL/scripts/backup_restore"
local STORAGE_REPO="$LOCAL_SCRIPTS/backup_restore"
local MOUNT_POINT
if [[ -f "$BACKUP_MOUNT_FILE" ]]; then
@@ -36,7 +36,7 @@ get_external_backup_mount_point() {
echo "$MOUNT_POINT"
return 0
else
source <(curl -s "$STORAGE_REPO/mount_disk_host_bk.sh")
source "$STORAGE_REPO/mount_disk_host_bk.sh"
MOUNT_POINT=$(mount_disk_host_bk)
[[ -z "$MOUNT_POINT" ]] && msg_error "$(translate "No disk mounted.")" && return 1
echo "$MOUNT_POINT"

View File

@@ -1,7 +1,7 @@
#!/usr/bin/env bash
# Configuration ============================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"
@@ -16,7 +16,7 @@ initialize_cache
get_external_backup_mount_point() {
local BACKUP_MOUNT_FILE="/usr/local/share/proxmenux/last_backup_mount.txt"
local STORAGE_REPO="$REPO_URL/scripts/backup_restore"
local STORAGE_REPO="$LOCAL_SCRIPTS/backup_restore"
local MOUNT_POINT
if [[ -f "$BACKUP_MOUNT_FILE" ]]; then
@@ -36,7 +36,7 @@ get_external_backup_mount_point() {
echo "$MOUNT_POINT"
return 0
else
source <(curl -s "$STORAGE_REPO/mount_disk_host_bk.sh")
source "$STORAGE_REPO/mount_disk_host_bk.sh"
MOUNT_POINT=$(mount_disk_host_bk)
[[ -z "$MOUNT_POINT" ]] && msg_error "$(translate "No disk mounted.")" && return 1
echo "$MOUNT_POINT"
@@ -1058,4 +1058,4 @@ read -r
# ===============================
host_backup_menu
host_backup_menu

View File

@@ -1,7 +1,7 @@
#!/usr/bin/env bash
# Configuration ============================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"
@@ -16,7 +16,7 @@ initialize_cache
get_external_backup_mount_point() {
local BACKUP_MOUNT_FILE="/usr/local/share/proxmenux/last_backup_mount.txt"
local STORAGE_REPO="$REPO_URL/scripts/backup_restore"
local STORAGE_REPO="$LOCAL_SCRIPTS/backup_restore"
local MOUNT_POINT
if [[ -f "$BACKUP_MOUNT_FILE" ]]; then
@@ -36,7 +36,7 @@ get_external_backup_mount_point() {
echo "$MOUNT_POINT"
return 0
else
source <(curl -s "$STORAGE_REPO/mount_disk_host_bk.sh")
source "$STORAGE_REPO/mount_disk_host_bk.sh"
MOUNT_POINT=$(mount_disk_host_bk)
[[ -z "$MOUNT_POINT" ]] && msg_error "$(translate "No disk mounted.")" && return 1
echo "$MOUNT_POINT"
@@ -1291,4 +1291,4 @@ read -r
# ===============================
host_backup_menu
host_backup_menu

View File

@@ -1,7 +1,7 @@
#!/usr/bin/env bash
# Configuration ============================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"
@@ -16,7 +16,7 @@ initialize_cache
get_external_backup_mount_point() {
local BACKUP_MOUNT_FILE="/usr/local/share/proxmenux/last_backup_mount.txt"
local STORAGE_REPO="$REPO_URL/scripts/backup_restore"
local STORAGE_REPO="$LOCAL_SCRIPTS/backup_restore"
local MOUNT_POINT
if [[ -f "$BACKUP_MOUNT_FILE" ]]; then
@@ -36,7 +36,7 @@ get_external_backup_mount_point() {
echo "$MOUNT_POINT"
return 0
else
source <(curl -s "$STORAGE_REPO/mount_disk_host_bk.sh")
source "$STORAGE_REPO/mount_disk_host_bk.sh"
MOUNT_POINT=$(mount_disk_host_bk)
[[ -z "$MOUNT_POINT" ]] && msg_error "$(translate "No disk mounted.")" && return 1
echo "$MOUNT_POINT"

View File

@@ -10,7 +10,7 @@
# Last Updated: 13/12/2024
# ==========================================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"

View File

@@ -16,7 +16,7 @@
# ==========================================================
# Configuration ============================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"

View File

@@ -28,7 +28,7 @@
# Configuration ============================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"

View File

@@ -21,7 +21,7 @@
# Configuration ============================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"

View File

@@ -4,7 +4,7 @@
# ==========================================================
# Configuration
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"

View File

@@ -2,7 +2,7 @@
# ==========================================================
# Remove Subscription Banner - Proxmox VE 8.4.9
# ==========================================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"

View File

@@ -2,7 +2,7 @@
# ==========================================================
# Remove Subscription Banner - Proxmox VE 9.x
# ==========================================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"

View File

@@ -2,7 +2,7 @@
# ==========================================================
# Remove Subscription Banner - Proxmox VE 9.x ONLY
# ==========================================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"

View File

@@ -4,7 +4,7 @@
# ==========================================================
# Configuration
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"
@@ -29,7 +29,7 @@ register_tool() {
}
download_common_functions() {
if ! source <(curl -s "$REPO_URL/scripts/global/common-functions.sh"); then
if ! source "$LOCAL_SCRIPTS/global/common-functions.sh"; then
return 1
fi
}

View File

@@ -4,7 +4,7 @@
# ==========================================================
# Configuration
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"
@@ -29,7 +29,7 @@ register_tool() {
}
download_common_functions() {
if ! source <(curl -s "$REPO_URL/scripts/global/common-functions.sh"); then
if ! source "$LOCAL_SCRIPTS/global/common-functions.sh"; then
return 1
fi
}

View File

@@ -4,7 +4,7 @@
# ==========================================================
# Configuration
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"
@@ -29,7 +29,7 @@ register_tool() {
}
download_common_functions() {
if ! source <(curl -s "$REPO_URL/scripts/global/common-functions.sh"); then
if ! source "$LOCAL_SCRIPTS/global/common-functions.sh"; then
return 1
fi
}

View File

@@ -7,7 +7,7 @@
# Last Updated: 25/09/2025
# =========================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
LOG_FILE="/tmp/coral_install.log"

View File

@@ -19,7 +19,7 @@
# ==========================================================
# Configuration ============================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"

View File

@@ -27,7 +27,7 @@
# ==========================================================
# Configuration ============================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"

View File

@@ -22,7 +22,7 @@
# Includes USB passthrough enhancement using persistent udev alias (/dev/coral).
# ==========================================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"

View File

@@ -17,7 +17,7 @@
# Configuration ============================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"

View File

@@ -11,7 +11,7 @@
# ==========================================================
# Configuration ============================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"

View File

@@ -15,7 +15,7 @@
# ==========================================================
# Configuration ============================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"

View File

@@ -16,7 +16,7 @@
# ==========================================================
# Configuration ============================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"

View File

@@ -10,7 +10,7 @@
# ==========================================================
# Configuration ============================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
CONFIG_FILE="$BASE_DIR/config.json"
CACHE_FILE="$BASE_DIR/cache.json"
@@ -218,7 +218,7 @@ show_config_menu() {
uninstall_proxmenu
;;
"return_main"|"")
exec bash <(curl -s "$REPO_URL/scripts/menus/main_menu.sh")
exec bash "$LOCAL_SCRIPTS/menus/main_menu.sh"
;;
esac
done
@@ -257,11 +257,7 @@ change_language() {
--msgbox "\n\n$(translate "Language changed to") $new_language" 10 50
# Reload menu with new language
TMP_FILE=$(mktemp)
curl -s "$REPO_URL/scripts/menus/config_menu.sh" > "$TMP_FILE"
chmod +x "$TMP_FILE"
trap 'rm -f "$TMP_FILE"' EXIT
exec bash "$TMP_FILE"
exec bash "$LOCAL_SCRIPTS/menus/config_menu.sh"
}
# ==========================================================

View File

@@ -26,30 +26,30 @@
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
VM_REPO="$REPO_URL/scripts/vm"
ISO_REPO="$REPO_URL/scripts/vm"
MENU_REPO="$REPO_URL/scripts/menus"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
VM_REPO="$LOCAL_SCRIPTS/vm"
ISO_REPO="$LOCAL_SCRIPTS/vm"
MENU_REPO="$LOCAL_SCRIPTS/menus"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"
[[ -f "$UTILS_FILE" ]] && source "$UTILS_FILE"
source <(curl -s "$VM_REPO/vm_configurator.sh")
source <(curl -s "$VM_REPO/disk_selector.sh")
source <(curl -s "$VM_REPO/vm_creator.sh")
# Source utilities and required scripts
if [[ -f "$UTILS_FILE" ]]; then
source "$UTILS_FILE"
else
echo "Error: $UTILS_FILE not found"
exit 1
fi
load_language
initialize_cache
# Source VM management scripts
[[ -f "$VM_REPO/vm_configurator.sh" ]] && source "$VM_REPO/vm_configurator.sh" || { echo "Error: vm_configurator.sh not found"; exit 1; }
[[ -f "$VM_REPO/disk_selector.sh" ]] && source "$VM_REPO/disk_selector.sh" || { echo "Error: disk_selector.sh not found"; exit 1; }
[[ -f "$VM_REPO/vm_creator.sh" ]] && source "$VM_REPO/vm_creator.sh" || { echo "Error: vm_creator.sh not found"; exit 1; }
function header_info() {
@@ -108,17 +108,17 @@ while true; do
3>&1 1>&2 2>&3)
[[ $? -ne 0 || "$OS_TYPE" == "6" ]] && exec bash <(curl -s "$MENU_REPO/main_menu.sh")
[[ $? -ne 0 || "$OS_TYPE" == "6" ]] && exec bash "$MENU_REPO/main_menu.sh"
case "$OS_TYPE" in
1)
source <(curl -fsSL "$ISO_REPO/select_nas_iso.sh") && select_nas_iso || continue
source "$ISO_REPO/select_nas_iso.sh" && select_nas_iso || continue
;;
2)
source <(curl -fsSL "$ISO_REPO/select_windows_iso.sh") && select_windows_iso || continue
source "$ISO_REPO/select_windows_iso.sh" && select_windows_iso || continue
;;
3)
source <(curl -fsSL "$ISO_REPO/select_linux_iso.sh") && select_linux_iso || continue
source "$ISO_REPO/select_linux_iso.sh" && select_linux_iso || continue
;;
4)
whiptail --title "OSX-PROXMOX" --yesno "$(translate "This is an external script that creates a macOS VM in Proxmox VE in just a few steps, whether you are using AMD or Intel hardware.")\n\n$(translate "The script clones the osx-proxmox.com repository and once the setup is complete, the server will automatically reboot.")\n\n$(translate "Make sure there are no critical services running as they will be interrupted. Ensure your server can be safely rebooted.")\n\n$(translate "Visit https://osx-proxmox.com for more information.")\n\n$(translate "Do you want to run the script now?")" 24 70
@@ -128,7 +128,7 @@ while true; do
continue
;;
5)
source <(curl -fsSL "$ISO_REPO/select_linux_iso.sh") && select_linux_other_scripts || continue
source "$ISO_REPO/select_linux_iso.sh" && select_linux_other_scripts || continue
;;
esac
@@ -149,26 +149,3 @@ while true; do
create_vm
break
done
function start_vm_configuration() {
if (whiptail --title "ProxMenux" --yesno "$(translate "Use Default Settings?")" --no-button "$(translate "Advanced")" 10 60); then
header_info
load_default_vm_config "$OS_TYPE"
if [[ -z "$HN" ]]; then
HN=$(whiptail --inputbox "$(translate "Enter a name for the new virtual machine:")" 10 60 --title "VM Hostname" 3>&1 1>&2 2>&3)
[[ -z "$HN" ]] && HN="custom-vm"
fi
apply_default_vm_config
else
header_info
echo -e "${CUS}$(translate "Using advanced configuration")${CL}"
configure_vm_advanced "$OS_TYPE"
fi
}

View File

@@ -12,7 +12,7 @@
# Configuration ============================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"
@@ -35,24 +35,24 @@ initialize_cache
case $OPTION in
1)
bash <(curl -s "$REPO_URL/scripts/configure_igpu_lxc.sh")
bash "$LOCAL_SCRIPTS/configure_igpu_lxc.sh"
if [ $? -ne 0 ]; then
return
fi
;;
2)
bash <(curl -s "$REPO_URL/scripts/install_coral_lxc.sh")
bash "$LOCAL_SCRIPTS/install_coral_lxc.sh"
if [ $? -ne 0 ]; then
return
fi
;;
3)
bash <(curl -s "$REPO_URL/scripts/gpu_tpu/install_coral_pve9.sh")
bash "$LOCAL_SCRIPTS/gpu_tpu/install_coral_pve9.sh"
if [ $? -ne 0 ]; then
return
fi
;;
4) exec bash <(curl -s "$REPO_URL/scripts/menus/main_menu.sh") ;;
*) exec bash <(curl -s "$REPO_URL/scripts/menus/main_menu.sh") ;;
4) exec bash "$LOCAL_SCRIPTS/menus/main_menu.sh" ;;
*) exec bash "$LOCAL_SCRIPTS/menus/main_menu.sh" ;;
esac
done

View File

@@ -15,7 +15,7 @@
# ==========================================================
# Configuration ============================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"
@@ -40,22 +40,23 @@ show_main_menu() {
case $CHOICE in
1)
bash <(curl -s "$REPO_URL/scripts/lxc/lxc-privileged-to-unprivileged.sh")
bash "$LOCAL_SCRIPTS/lxc/lxc-privileged-to-unprivileged.sh"
;;
2)
bash <(curl -s "$REPO_URL/scripts/lxc/lxc-unprivileged-to-privileged.sh")
bash "$LOCAL_SCRIPTS/lxc/lxc-unprivileged-to-privileged.sh"
;;
3)
show_container_status
;;
4)
bash <(curl -s "$REPO_URL/scripts/lxc/lxc-conversion-manual-guide.sh")
bash "$LOCAL_SCRIPTS/lxc/lxc-conversion-manual-guide.sh"
;;
5)
exec bash <(curl -s "$REPO_URL/scripts/menus/main_menu.sh")
exec bash "$LOCAL_SCRIPTS/menus/main_menu.sh"
;;
*)
exec bash <(curl -s "$REPO_URL/scripts/menus/main_menu.sh")
exec bash "$LOCAL_SCRIPTS/menus/main_menu.sh"
;;
esac
}
@@ -99,6 +100,4 @@ show_container_status() {
show_main_menu
}
show_main_menu
show_main_menu

View File

@@ -11,7 +11,7 @@
# ==========================================================
# Configuration ============================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"
@@ -54,10 +54,10 @@ check_pve9_translation_compatibility() {
--title "Translation Environment Incompatible with PVE $pve_version" \
--msgbox "NOTICE: You are running Proxmox VE $pve_version with translation components installed.\n\nTranslations are NOT supported in PVE 9+. This causes:\n• Menu loading errors\n• Translation failures\n• System instability\n\nREQUIRED ACTION:\nProxMenux will now automatically reinstall the Normal Version.\n\nThis process will:\n• Remove incompatible translation components\n• Install PVE 9+ compatible version\n• Preserve all your settings and preferences\n\nPress OK to continue with automatic reinstallation..." 20 75
bash <(curl -sSL "$REPO_URL/install_proxmenux.sh")
bash "$BASE_DIR/install_proxmenux.sh"
fi
exit
exit 0
fi
}
@@ -90,9 +90,6 @@ show_menu() {
while true; do
local menu_title="Main ProxMenux"
if [[ -n "$PROXMENUX_PVE9_WARNING_SHOWN" ]]; then
menu_title="Main ProxMenux"
fi
dialog --clear \
--backtitle "ProxMenux" \
@@ -122,16 +119,16 @@ show_menu() {
OPTION=$(<"$TEMP_FILE")
case $OPTION in
1) exec bash <(curl -s "$REPO_URL/scripts/menus/menu_post_install.sh") ;;
2) exec bash <(curl -s "$REPO_URL/scripts/menus/hw_grafics_menu.sh") ;;
3) exec bash <(curl -s "$REPO_URL/scripts/menus/create_vm_menu.sh") ;;
4) exec bash <(curl -s "$REPO_URL/scripts/menus/storage_menu.sh") ;;
5) exec bash <(curl -s "$REPO_URL/scripts/menus/share_menu.sh") ;;
6) exec bash <(curl -s "$REPO_URL/scripts/menus/menu_Helper_Scripts.sh") ;;
7) exec bash <(curl -s "$REPO_URL/scripts/menus/network_menu.sh") ;;
8) exec bash <(curl -s "$REPO_URL/scripts/menus/utilities_menu.sh") ;;
h) bash <(curl -s "$REPO_URL/scripts/help_info_menu.sh") ;;
s) exec bash <(curl -s "$REPO_URL/scripts/menus/config_menu.sh") ;;
1) exec bash "$LOCAL_SCRIPTS/menus/menu_post_install.sh" ;;
2) exec bash "$LOCAL_SCRIPTS/menus/hw_grafics_menu.sh" ;;
3) exec bash "$LOCAL_SCRIPTS/menus/create_vm_menu.sh" ;;
4) exec bash "$LOCAL_SCRIPTS/menus/storage_menu.sh" ;;
5) exec bash "$LOCAL_SCRIPTS/menus/share_menu.sh" ;;
6) exec bash "$LOCAL_SCRIPTS/menus/menu_Helper_Scripts.sh" ;;
7) exec bash "$LOCAL_SCRIPTS/menus/network_menu.sh" ;;
8) exec bash "$LOCAL_SCRIPTS/menus/utilities_menu.sh" ;;
h) bash "$LOCAL_SCRIPTS/help_info_menu.sh" ;;
s) exec bash "$LOCAL_SCRIPTS/menus/config_menu.sh" ;;
0) clear; msg_ok "$(translate "Thank you for using ProxMenux. Goodbye!")"; rm -f "$TEMP_FILE"; exit 0 ;;
*) msg_warn "$(translate "Invalid option")"; sleep 2 ;;
esac

View File

@@ -11,7 +11,7 @@
# ==========================================================
# Configuration ============================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"
@@ -62,21 +62,19 @@ show_menu() {
OPTION=$(<"$TEMP_FILE")
case $OPTION in
1) exec bash <(curl -s "$REPO_URL/scripts/menus/menu_post_install.sh") ;;
2) bash <(curl -s "$REPO_URL/scripts/help_info_menu.sh") ;;
3) exec bash <(curl -s "$REPO_URL/scripts/menus/hw_grafics_menu.sh") ;;
4) exec bash <(curl -s "$REPO_URL/scripts/menus/create_vm_menu.sh") ;;
5) exec bash <(curl -s "$REPO_URL/scripts/menus/storage_menu.sh") ;;
6) exec bash <(curl -s "$REPO_URL/scripts/menus/menu_Helper_Scripts.sh") ;;
7) exec bash <(curl -s "$REPO_URL/scripts/menus/network_menu.sh") ;;
8) exec bash <(curl -s "$REPO_URL/scripts/menus/utilities_menu.sh") ;;
9) exec bash <(curl -s "$REPO_URL/scripts/menus/config_menu.sh") ;;
1) exec bash "$LOCAL_SCRIPTS/menus/menu_post_install.sh" ;;
2) bash "$LOCAL_SCRIPTS/help_info_menu.sh" ;;
3) exec bash "$LOCAL_SCRIPTS/menus/hw_grafics_menu.sh" ;;
4) exec bash "$LOCAL_SCRIPTS/menus/create_vm_menu.sh" ;;
5) exec bash "$LOCAL_SCRIPTS/menus/storage_menu.sh" ;;
6) exec bash "$LOCAL_SCRIPTS/menus/menu_Helper_Scripts.sh" ;;
7) exec bash "$LOCAL_SCRIPTS/menus/network_menu.sh" ;;
8) exec bash "$LOCAL_SCRIPTS/menus/utilities_menu.sh" ;;
9) exec bash "$LOCAL_SCRIPTS/menus/config_menu.sh" ;;
0) clear; msg_ok "$(translate "Thank you for using ProxMenux. Goodbye!")"; rm -f "$TEMP_FILE"; exit 0 ;;
*) msg_warn "$(translate "Invalid option")"; sleep 2 ;;
esac
done
}
show_menu

View File

@@ -20,7 +20,7 @@
# Configuration ============================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"
@@ -293,7 +293,7 @@ while true; do
dialog --clear --title "Proxmox VE Helper-Scripts" \
--msgbox "\n\n$(translate "Visit the website to discover more scripts, stay updated with the latest updates, and support the project:")\n\nhttps://community-scripts.github.io/ProxmoxVE" 15 70
#clear
exec bash <(curl -s "$REPO_URL/scripts/menus/main_menu.sh")
exec bash <(curl -s "$LOCAL_SCRIPTS/menus/main_menu.sh")
}
if [[ "$SELECTED" == "search" ]]; then

View File

@@ -9,7 +9,7 @@
# Last Updated: 06/07/2025
# ==========================================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"
@@ -70,7 +70,7 @@ confirm_automated_script() {
clear
if [ $response -eq 0 ]; then
bash <(curl -s $REPO_URL/scripts/post_install/auto_post_install.sh)
bash "$LOCAL_SCRIPTS/post_install/auto_post_install.sh"
else
msg_warn "$(translate "Cancelled by user.")"
sleep 1
@@ -80,9 +80,9 @@ confirm_automated_script() {
# ==========================================================
declare -a PROXMENUX_SCRIPTS=(
"Customizable post-installation script|ProxMenux|bash <(curl -s $REPO_URL/scripts/post_install/customizable_post_install.sh)"
"Customizable post-installation script|ProxMenux|bash \"$LOCAL_SCRIPTS/post_install/customizable_post_install.sh\""
"Automated post-installation script|ProxMenux|confirm_automated_script"
"Uninstall optimizations|ProxMenux|bash <(curl -s $REPO_URL/scripts/post_install/uninstall-tools.sh)"
"Uninstall optimizations|ProxMenux|bash \"$LOCAL_SCRIPTS/post_install/uninstall-tools.sh\""
)
@@ -168,7 +168,7 @@ show_menu() {
if [ $exit_status -ne 0 ] || [ "$script_selection" = "0" ]; then
exec bash <(curl -s "$REPO_URL/scripts/menus/main_menu.sh")
exec bash "$LOCAL_SCRIPTS/menus/main_menu.sh"
fi

View File

@@ -16,7 +16,7 @@
# Special thanks to @Andres_Eduardo_Rojas_Moya for contributing the persistent
# network naming function and for the original idea.
# Configuration ============================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"
@@ -1082,7 +1082,7 @@ show_menu() {
if [ $exit_status -ne 0 ] || [ "$script_selection" = "0" ]; then
exec bash <(curl -s "$REPO_URL/scripts/menus/main_menu.sh")
exec bash "$LOCAL_SCRIPTS/menus/main_menu.sh"
fi

View File

@@ -10,7 +10,7 @@
# ==========================================================
# Configuration
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"
@@ -43,7 +43,7 @@ while true; do
"h" "$(translate "Help & Info (commands)")" \
"0" "$(translate "Return to Main Menu")" \
2>&1 >/dev/tty
) || { exec bash <(curl -s "$REPO_URL/scripts/menus/main_menu.sh"); }
) || { exec bash "$LOCAL_SCRIPTS/menus/main_menu.sh"; }
case "$OPTION" in
@@ -52,37 +52,37 @@ while true; do
;;
1)
bash <(curl -s "$REPO_URL/scripts/share/nfs_host.sh")
bash "$LOCAL_SCRIPTS/share/nfs_host.sh"
;;
2)
bash <(curl -s "$REPO_URL/scripts/share/samba_host.sh")
bash "$LOCAL_SCRIPTS/share/samba_host.sh"
;;
3)
bash <(curl -s "$REPO_URL/scripts/share/local-shared-manager.sh")
bash "$LOCAL_SCRIPTS/share/local-shared-manager.sh"
;;
4)
bash <(curl -s "$REPO_URL/scripts/share/lxc-mount-manager_minimal.sh")
bash "$LOCAL_SCRIPTS/share/lxc-mount-manager_minimal.sh"
;;
5)
bash <(curl -s "$REPO_URL/scripts/share/nfs_client.sh")
bash "$LOCAL_SCRIPTS/share/nfs_client.sh"
;;
6)
bash <(curl -s "$REPO_URL/scripts/share/samba_client.sh")
bash "$LOCAL_SCRIPTS/share/samba_client.sh"
;;
7)
bash <(curl -s "$REPO_URL/scripts/share/nfs_lxc_server.sh")
bash "$LOCAL_SCRIPTS/share/nfs_lxc_server.sh"
;;
8)
bash <(curl -s "$REPO_URL/scripts/share/samba_lxc_server.sh")
bash "$LOCAL_SCRIPTS/share/samba_lxc_server.sh"
;;
h)
bash <(curl -s "$REPO_URL/scripts/share/commands_share.sh")
bash "$LOCAL_SCRIPTS/share/commands_share.sh"
;;
0)
exec bash <(curl -s "$REPO_URL/scripts/menus/main_menu.sh")
exec bash "$LOCAL_SCRIPTS/menus/main_menu.sh"
;;
*)
exec bash <(curl -s "$REPO_URL/scripts/menus/main_menu.sh")
exec bash "$LOCAL_SCRIPTS/menus/main_menu.sh"
;;
esac
done

View File

@@ -12,7 +12,7 @@
# Configuration ============================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"
@@ -39,38 +39,37 @@ while true; do
case $OPTION in
1)
msg_info2 "$(translate "Running script: Add Disk Passthrough to a VM")..."
bash <(curl -s "$REPO_URL/scripts/storage/disk-passthrough.sh")
bash "$LOCAL_SCRIPTS/storage/disk-passthrough.sh"
;;
2)
msg_info2 "$(translate "Running script: Add Disk Passthrough to a CT")..."
bash <(curl -s "$REPO_URL/scripts/storage/disk-passthrough_ct.sh")
bash "$LOCAL_SCRIPTS/storage/disk-passthrough_ct.sh"
;;
3)
msg_info2 "$(translate "Running script: Import Disk Image to a VM")..."
bash <(curl -s "$REPO_URL/scripts/storage/import-disk-image.sh")
bash "$LOCAL_SCRIPTS/storage/import-disk-image.sh"
;;
4)
msg_info2 "$(translate "Running script: Mount point to CT")..."
bash <(curl -s "$REPO_URL/scripts/storage/mount-point-to-ct.sh")
bash "$LOCAL_SCRIPTS/storage/mount-point-to-ct.sh"
;;
5)
msg_info2 "$(translate "Running script: Mount disk on HOST")..."
bash <(curl -s "$REPO_URL/scripts/storage/mount-disk-on-host.sh")
bash "$LOCAL_SCRIPTS/storage/mount-disk-on-host.sh"
;;
6)
msg_info2 "$(translate "Running script: Unmount disk from HOST")..."
bash <(curl -s "$REPO_URL/scripts/storage/unmount-disk-from-host.sh")
bash "$LOCAL_SCRIPTS/storage/unmount-disk-from-host.sh"
;;
7)
msg_info2 "$(translate "Running script: Format disk")..."
bash <(curl -s "$REPO_URL/scripts/storage/format-disk.sh")
bash "$LOCAL_SCRIPTS/storage/format-disk.sh"
;;
8)
exec bash <(curl -s "$REPO_URL/scripts/menus/main_menu.sh")
exec bash "$LOCAL_SCRIPTS/menus/main_menu.sh"
;;
*)
exec bash <(curl -s "$REPO_URL/scripts/menus/main_menu.sh")
exec bash "$LOCAL_SCRIPTS/menus/main_menu.sh"
;;
esac
done

View File

@@ -12,7 +12,7 @@
# Configuration ============================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"
@@ -36,19 +36,19 @@ while true; do
case $OPTION in
1)
bash <(curl -s "$REPO_URL/scripts/storage/disk-passthrough.sh")
bash "$LOCAL_SCRIPTS/storage/disk-passthrough.sh"
;;
2)
bash <(curl -s "$REPO_URL/scripts/storage/disk-passthrough_ct.sh")
bash "$LOCAL_SCRIPTS/storage/disk-passthrough_ct.sh"
;;
3)
bash <(curl -s "$REPO_URL/scripts/storage/import-disk-image.sh")
bash "$LOCAL_SCRIPTS/storage/import-disk-image.sh"
;;
4)
exec bash <(curl -s "$REPO_URL/scripts/menus/main_menu.sh")
exec bash "$LOCAL_SCRIPTS/menus/main_menu.sh"
;;
*)
exec bash <(curl -s "$REPO_URL/scripts/menus/main_menu.sh")
exec bash "$LOCAL_SCRIPTS/menus/main_menu.sh"
;;
esac
done

View File

@@ -12,7 +12,7 @@
# Configuration ============================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"
@@ -36,13 +36,13 @@ initialize_cache
case $OPTION in
1)
bash <(curl -s "$REPO_URL/scripts/utilities/uup_dump_iso_creator.sh")
bash "$LOCAL_SCRIPTS/utilities/uup_dump_iso_creator.sh"
if [ $? -ne 0 ]; then
return
fi
;;
2)
bash <(curl -s "$REPO_URL/scripts/utilities/system_utils.sh")
bash "$LOCAL_SCRIPTS/utilities/system_utils.sh"
if [ $? -ne 0 ]; then
return
fi
@@ -64,19 +64,20 @@ initialize_cache
dialog_result=$?
if [[ $dialog_result -eq 0 ]]; then
bash <(curl -s "$REPO_URL/scripts/utilities/proxmox_update.sh")
bash "$LOCAL_SCRIPTS/utilities/proxmox_update.sh"
if [ $? -ne 0 ]; then
return
fi
fi
;;
4)
bash <(curl -s "$REPO_URL/scripts/utilities/upgrade_pve8_to_pve9.sh")
bash "$LOCAL_SCRIPTS/utilities/upgrade_pve8_to_pve9.sh"
if [ $? -ne 0 ]; then
return
fi
;;
5) exec bash <(curl -s "$REPO_URL/scripts/menus/main_menu.sh") ;;
*) exec bash <(curl -s "$REPO_URL/scripts/menus/main_menu.sh") ;;
5) exec bash "$LOCAL_SCRIPTS/menus/main_menu.sh" ;;
*) exec bash "$LOCAL_SCRIPTS/menus/main_menu.sh" ;;
esac
done
done

View File

@@ -36,7 +36,7 @@
# Configuration
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"
@@ -107,16 +107,11 @@ apt_upgrade() {
if [[ "$pve_version" -ge 9 ]]; then
bash <(curl -fsSL "$REPO_URL/scripts/global/update-pve9_2.sh")
bash "$LOCAL_SCRIPTS/global/update-pve9_2.sh"
else
bash <(curl -fsSL "$REPO_URL/scripts/global/update-pve8.sh")
bash "$LOCAL_SCRIPTS/global/update-pve8.sh"
fi
}
# ==========================================================
@@ -147,14 +142,14 @@ remove_subscription_banner() {
msg_warn "Banner removal cancelled by user."
return 1
fi
bash <(curl -fsSL "$REPO_URL/scripts/global/remove-banner-pve-v3.sh")
bash "$LOCAL_SCRIPTS/global/remove-banner-pve-v3.sh"
else
if ! whiptail --title "Proxmox VE 8.x Subscription Banner Removal" \
--yesno "Do you want to remove the Proxmox subscription banner from the web interface for PVE $pve_version?" 10 70; then
msg_warn "Banner removal cancelled by user."
return 1
fi
bash <(curl -fsSL "$REPO_URL/scripts/global/remove-banner-pve8.sh")
bash "$LOCAL_SCRIPTS/global/remove-banner-pve8.sh"
fi
}

View File

@@ -49,7 +49,7 @@
# Configuration
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"
@@ -194,10 +194,10 @@ apt_upgrade() {
if [[ "$pve_version" -ge 9 ]]; then
bash <(curl -fsSL "$REPO_URL/scripts/global/update-pve9_2.sh")
bash "$LOCAL_SCRIPTS/global/update-pve9_2.sh"
else
bash <(curl -fsSL "$REPO_URL/scripts/global/update-pve8.sh")
bash "$LOCAL_SCRIPTS/global/update-pve8.sh"
fi
@@ -2902,10 +2902,10 @@ remove_subscription_banner() {
if [[ "$pve_version" -ge 9 ]]; then
bash <(curl -fsSL "$REPO_URL/scripts/global/remove-banner-pve-v3.sh")
bash "$LOCAL_SCRIPTS/global/remove-banner-pve-v3.sh"
else
bash <(curl -fsSL "$REPO_URL/scripts/global/remove-banner-pve8.sh")
bash "$LOCAL_SCRIPTS/global/remove-banner-pve8.sh"
fi
}
@@ -4366,4 +4366,3 @@ done
check_extremeshok_warning
main_menu

View File

@@ -20,8 +20,8 @@
# ==========================================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
RETURN_SCRIPT="$REPO_URL/scripts/menus/menu_post_install.sh"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
RETURN_SCRIPT="$LOCAL_SCRIPTS/menus/menu_post_install.sh"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
TOOLS_JSON="$BASE_DIR/installed_tools.json"

View File

@@ -23,7 +23,7 @@
# ==========================================================
# Configuration ============================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"
@@ -201,8 +201,8 @@ show_main_menu() {
2)
show_ip_info
;;
3) exec bash <(curl -s "$REPO_URL/scripts/menus/main_menu.sh") ;;
*) exec bash <(curl -s "$REPO_URL/scripts/menus/main_menu.sh") ;;
3) exec bash "$LOCAL_SCRIPTS/menus/main_menu.sh" ;;
*) exec bash "$LOCAL_SCRIPTS/menus/main_menu.sh" ;;
esac
done

View File

@@ -11,7 +11,7 @@
# ==========================================================
# Configuration ============================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"

View File

@@ -10,7 +10,7 @@
# ==========================================================
# Configuration
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
@@ -21,8 +21,8 @@ if [[ -f "$UTILS_FILE" ]]; then
fi
SHARE_COMMON_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main/scripts/global/share-common.func"
if ! source <(curl -s "$SHARE_COMMON_URL" 2>/dev/null); then
SHARE_COMMON_FILE="$LOCAL_SCRIPTS/global/share-common.func"
if ! source "$SHARE_COMMON_FILE" 2>/dev/null; then
SHARE_COMMON_LOADED=false
else
SHARE_COMMON_LOADED=true

View File

@@ -13,7 +13,7 @@
# ==========================================================
# Configuration
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
@@ -22,8 +22,8 @@ if [[ -f "$UTILS_FILE" ]]; then
fi
# Load shared functions
SHARE_COMMON_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main/scripts/global/share-common.func"
if ! source <(curl -s "$SHARE_COMMON_URL" 2>/dev/null); then
SHARE_COMMON_FILE="$LOCAL_SCRIPTS/global/share-common.func"
if ! source "$SHARE_COMMON_FILE" 2>/dev/null; then
msg_error "$(translate "Could not load shared functions. Script cannot continue.")"
exit 1
fi
@@ -684,4 +684,4 @@ while true; do
5) exit 0 ;;
*) exit 0 ;;
esac
done
done

View File

@@ -13,7 +13,7 @@
# ==========================================================
# Configuration
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"
@@ -26,8 +26,8 @@ load_language
initialize_cache
# Load common share functions
SHARE_COMMON_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main/scripts/global/share-common.func"
if ! source <(curl -s "$SHARE_COMMON_URL" 2>/dev/null); then
SHARE_COMMON_FILE="$LOCAL_SCRIPTS/global/share-common.func"
if ! source "$SHARE_COMMON_FILE" 2>/dev/null; then
msg_warn "$(translate "Could not load shared functions. Using fallback methods.")"
SHARE_COMMON_LOADED=false
else

View File

@@ -13,7 +13,7 @@
# ==========================================================
# Configuration
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
@@ -22,8 +22,8 @@ if [[ -f "$UTILS_FILE" ]]; then
fi
# Load shared functions
SHARE_COMMON_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main/scripts/global/share-common.func"
if ! source <(curl -s "$SHARE_COMMON_URL" 2>/dev/null); then
SHARE_COMMON_FILE="$LOCAL_SCRIPTS/global/share-common.func"
if ! source "$SHARE_COMMON_FILE" 2>/dev/null; then
msg_error "$(translate "Could not load shared functions. Script cannot continue.")"
exit 1
fi

View File

@@ -15,7 +15,7 @@
# Configuration
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"
@@ -26,8 +26,8 @@ if [[ -f "$UTILS_FILE" ]]; then
fi
SHARE_COMMON_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main/scripts/global/share-common.func"
if ! source <(curl -s "$SHARE_COMMON_URL" 2>/dev/null); then
SHARE_COMMON_FILE="$LOCAL_SCRIPTS/global/share-common.func"
if ! source "$SHARE_COMMON_FILE" 2>/dev/null; then
msg_error "$(translate "Could not load shared functions. Script cannot continue.")"
exit 1
fi
@@ -1082,4 +1082,4 @@ while true; do
5) exit 0 ;;
*) exit 0 ;;
esac
done
done

View File

@@ -13,7 +13,7 @@
# ==========================================================
# Configuration
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
CREDENTIALS_DIR="/etc/samba/credentials"
@@ -26,8 +26,8 @@ load_language
initialize_cache
# Load common share functions
SHARE_COMMON_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main/scripts/global/share-common.func"
if ! source <(curl -s "$SHARE_COMMON_URL" 2>/dev/null); then
SHARE_COMMON_FILE="$LOCAL_SCRIPTS/global/share-common.func"
if ! source "$SHARE_COMMON_FILE" 2>/dev/null; then
msg_warn "$(translate "Could not load shared functions. Using fallback methods.")"
SHARE_COMMON_LOADED=false
else

View File

@@ -13,7 +13,7 @@
# ==========================================================
# Configuration
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"
@@ -24,8 +24,8 @@ if [[ -f "$UTILS_FILE" ]]; then
fi
SHARE_COMMON_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main/scripts/global/share-common.func"
if ! source <(curl -s "$SHARE_COMMON_URL" 2>/dev/null); then
SHARE_COMMON_FILE="$LOCAL_SCRIPTS/global/share-common.func"
if ! source "$SHARE_COMMON_FILE" 2>/dev/null; then
msg_error "$(translate "Could not load shared functions. Script cannot continue.")"
exit 1
fi
@@ -573,4 +573,4 @@ while true; do
6) exit 0 ;;
*) exit 0 ;;
esac
done
done

View File

@@ -28,7 +28,7 @@
# Configuration ============================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"

View File

@@ -20,7 +20,7 @@
# ==========================================================
# Configuration ============================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"

View File

@@ -14,7 +14,7 @@
# Configuration ============================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"

View File

@@ -27,7 +27,7 @@
# ==========================================================
# Configuration ============================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"

View File

@@ -20,7 +20,7 @@
# ==========================================================
# Configuration ============================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"

View File

@@ -8,7 +8,7 @@
# Description : Mount a folder from /mnt on the host to a mount point in a CT
# ==========================================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"

View File

@@ -10,7 +10,7 @@
# Last Updated: 13/12/2024
# ==========================================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"

View File

@@ -11,7 +11,7 @@
# Description : Allows unmounting a previously mounted disk
# ==========================================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"

View File

@@ -2,7 +2,7 @@
# Configuration ============================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"

View File

@@ -20,7 +20,7 @@
# Configuration ============================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"

View File

@@ -28,7 +28,7 @@
# Configuration ============================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"

View File

@@ -14,7 +14,7 @@
# It avoids making changes if the system is already connected to the internet.
# ==========================================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"
@@ -183,8 +183,8 @@ show_main_menu() {
1) repair_network ;;
2) verify_network ;;
3) show_ip_info ;;
4) exec bash <(curl -s "$REPO_URL/scripts/menus/main_menu.sh") ;;
*) exec bash <(curl -s "$REPO_URL/scripts/menus/main_menu.sh") ;;
4) exec bash "$LOCAL_SCRIPTS/menus/main_menu.sh" ;;
*) exec bash "$LOCAL_SCRIPTS/menus/main_menu.sh" ;;
esac
done
}

View File

@@ -29,7 +29,7 @@
# Configuration ============================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"

View File

@@ -29,7 +29,7 @@
# Configuration ============================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"

View File

@@ -11,7 +11,7 @@
# ==========================================================
# Configuration ============================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"
@@ -266,10 +266,10 @@ EOF${CL}" \
read -r
clear
exit 0
#bash <(curl -fsSL "$REPO_URL/scripts/utilities/upgrade_pve8_to_pve9.sh")
#bash "$LOCAL_SCRIPTS/utilities/upgrade_pve8_to_pve9.sh"
}
# Main execution
show_proxmox_upgrade_manual_guide
show_proxmox_upgrade_manual_guide

View File

@@ -57,12 +57,12 @@ apt_upgrade() {
if [[ "$pve_version" -ge 9 ]]; then
show_proxmenux_logo
msg_title "$(translate "$SCRIPT_TITLE")"
bash <(curl -fsSL "$REPO_URL/scripts/global/update-pve9_2.sh")
bash "$LOCAL_SCRIPTS/global/update-pve9_2.sh"
else
show_proxmenux_logo
msg_title "$(translate "Proxmox system update")"
bash <(curl -fsSL "$REPO_URL/scripts/global/update-pve8.sh")
bash "$LOCAL_SCRIPTS/global/update-pve8.sh"
fi

View File

@@ -9,7 +9,7 @@
# Last Updated: 14/08/2025
# ==========================================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"

View File

@@ -35,7 +35,7 @@
#
# Configuration ============================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"

View File

@@ -9,7 +9,7 @@
# Last Updated: 14/08/2025
# ==========================================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
@@ -49,21 +49,21 @@ done
run_manual_guide() {
local url="$REPO_URL/scripts/utilities/proxmox-upgrade-pve8-to-pve9-manual-guide.sh"
if command -v curl >/dev/null 2>&1; then
bash <(curl -fsSL "$url")
else
bash <(wget -qO- "$url")
local SCRIPT_FILE="$LOCAL_SCRIPTS/utilities/proxmox-upgrade-pve8-to-pve9-manual-guide.sh"
if [[ ! -f "$SCRIPT_FILE" ]]; then
msg_error "$(translate "Manual guide script not found")"
return 1
fi
bash "$SCRIPT_FILE"
}
run_pve8to9_check() {
local url="$REPO_URL/scripts/utilities/pve8to9_check.sh"
if command -v curl >/dev/null 2>&1; then
bash <(curl -fsSL "$url")
else
bash <(wget -qO- "$url")
local SCRIPT_FILE="$LOCAL_SCRIPTS/utilities/pve8to9_check.sh"
if [[ ! -f "$SCRIPT_FILE" ]]; then
msg_error "$(translate "Check script not found")"
return 1
fi
bash "$SCRIPT_FILE"
}
ask_run_mode() {
@@ -564,7 +564,7 @@ apt_upgrade() {
exit 1
else
bash <(curl -fsSL "$REPO_URL/scripts/global/update-pve8.sh")
bash "$LOCAL_SCRIPTS/global/update-pve8.sh"
hash -r
fi

View File

@@ -34,7 +34,7 @@
# ==========================================================
# Repository and directory structure
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
INSTALL_DIR="/usr/local/bin"
BASE_DIR="/usr/local/share/proxmenux"
CONFIG_FILE="$BASE_DIR/config.json"
@@ -133,7 +133,7 @@ msg_info() {
# Display info2 message
msg_info2() {
local msg="$1"
echo -e "${TAB}${BOLD}${YW}${HOLD}${msg}${CL}"
echo -e "${TAB}${BOLD}${YW}${HOLD} ${msg}${CL}"
}
# Display info message with spinner

View File

@@ -26,10 +26,10 @@
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
VM_REPO="$REPO_URL/scripts/vm"
ISO_REPO="$REPO_URL/scripts/vm"
MENU_REPO="$REPO_URL/scripts/menus"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
VM_REPO="$LOCAL_SCRIPTS/vm"
ISO_REPO="$LOCAL_SCRIPTS/vm"
MENU_REPO="$LOCAL_SCRIPTS/menus"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"
@@ -37,9 +37,9 @@ VENV_PATH="/opt/googletrans-env"
[[ -f "$UTILS_FILE" ]] && source "$UTILS_FILE"
source <(curl -s "$VM_REPO/vm_configurator.sh")
source <(curl -s "$VM_REPO/disk_selector.sh")
source <(curl -s "$VM_REPO/vm_creator.sh")
source "$VM_REPO/vm_configurator.sh"
source "$VM_REPO/disk_selector.sh"
source "$VM_REPO/vm_creator.sh"
@@ -108,17 +108,17 @@ while true; do
3>&1 1>&2 2>&3)
[[ $? -ne 0 || "$OS_TYPE" == "5" ]] && exec bash <(curl -s "$MENU_REPO/main_menu.sh")
[[ $? -ne 0 || "$OS_TYPE" == "5" ]] && exec bash "$MENU_REPO/main_menu.sh"
case "$OS_TYPE" in
1)
source <(curl -fsSL "$ISO_REPO/select_nas_iso.sh") && select_nas_iso || continue
source "$ISO_REPO/select_nas_iso.sh" && select_nas_iso || continue
;;
2)
source <(curl -fsSL "$ISO_REPO/select_windows_iso.sh") && select_windows_iso || continue
source "$ISO_REPO/select_windows_iso.sh" && select_windows_iso || continue
;;
3)
source <(curl -fsSL "$ISO_REPO/select_linux_iso.sh") && select_linux_iso || continue
source "$ISO_REPO/select_linux_iso.sh" && select_linux_iso || continue
;;
4)
whiptail --title "OSX-PROXMOX" --yesno "$(translate "This is an external script that creates a macOS VM in Proxmox VE in just a few steps, whether you are using AMD or Intel hardware.")\n\n$(translate "The script clones the osx-proxmox.com repository and once the setup is complete, the server will automatically reboot.")\n\n$(translate "Make sure there are no critical services running as they will be interrupted. Ensure your server can be safely rebooted.")\n\n$(translate "Visit https://osx-proxmox.com for more information.")\n\n$(translate "Do you want to run the script now?")" 20 70
@@ -128,7 +128,7 @@ while true; do
continue
;;
5)
source <(curl -fsSL "$ISO_REPO/select_linux_iso.sh") && select_linux_other_scripts || continue
source "$ISO_REPO/select_linux_iso.sh" && select_linux_other_scripts || continue
;;
esac
@@ -173,4 +173,3 @@ function start_vm_configuration() {
configure_vm_advanced "$OS_TYPE"
fi
}

View File

@@ -25,7 +25,7 @@
# ==========================================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"
@@ -219,7 +219,7 @@ function select_linux_cloudinit() {
whiptail --title "Proxmox VE Helper-Scripts" \
--msgbox "$(translate "Visit the website to discover more scripts, stay updated with the latest updates, and support the project:\n\nhttps://community-scripts.github.io/ProxmoxVE")" 15 70
exec bash <(curl -s "$REPO_URL/scripts/vm/create_vm.sh")
exec bash "$LOCAL_SCRIPTS/vm/create_vm.sh"
}

View File

@@ -28,7 +28,7 @@
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
[[ -f "$UTILS_FILE" ]] && source "$UTILS_FILE"
load_language
@@ -62,7 +62,7 @@ function select_nas_iso() {
case "$NAS_TYPE" in
1)
bash <(curl -s "$REPO_URL/scripts/vm/synology.sh")
bash "$LOCAL_SCRIPTS/vm/synology.sh"
msg_success "$(translate "Press Enter to return to menu...")"
read -r
return 1
@@ -103,7 +103,7 @@ function select_nas_iso() {
HN="Rockstor"
;;
7)
bash <(curl -s "$REPO_URL/scripts/vm/zimaos.sh")
bash "$LOCAL_SCRIPTS/vm/zimaos.sh"
msg_success "$(translate "Press Enter to return to menu...")"
read -r
return 1

View File

@@ -24,8 +24,8 @@
# consistent and maintainable way, using ProxMenux standards.
# ==========================================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
UUP_REPO="$REPO_URL/scripts/vm"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
UUP_REPO="$LOCAL_SCRIPTS/vm"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"
@@ -79,7 +79,7 @@ function select_windows_iso() {
case "$CHOICE" in
1)
if source <(curl -fsSL "$UUP_REPO/uupdump_creator.sh"); then
if source "$UUP_REPO/uupdump_creator.sh"; then
run_uupdump_creator || return 1
detect_latest_iso_created || return 1
EXIT_FLAG="yes"

View File

@@ -29,7 +29,7 @@
# Configuration ============================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"

View File

@@ -29,7 +29,7 @@
# Configuration ============================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"

View File

@@ -24,7 +24,7 @@
# consistent and maintainable way, using ProxMenux standards.
# ==========================================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"
@@ -494,7 +494,7 @@ fi
msg_success "$(translate "Press Enter to return to the main menu...")"
read -r
bash <(curl -fsSL "$REPO_URL/scripts/menus/create_vm_menu.sh")
bash "$LOCAL_SCRIPTS/menus/create_vm_menu.sh"
exit 0
}

View File

@@ -22,7 +22,7 @@
# Configuration ============================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
LOCAL_SCRIPTS="/usr/local/share/proxmenux/scripts"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"