Compare commits

..

18 Commits
v1.1.4 ... main

Author SHA1 Message Date
MacRimi
11fbfda6bf Update cache.json 2025-08-13 22:46:58 +02:00
MacRimi
4f0353d0fb Create proxmox-upgrade-pve8-to-pve9-manual-guide.sh 2025-08-13 22:46:38 +02:00
MacRimi
a605d68d73 Merge branch 'main' of https://github.com/MacRimi/ProxMenux 2025-08-13 20:29:26 +02:00
MacRimi
237b7fbf1b Update cache.json 2025-08-13 20:29:24 +02:00
ProxMenuxBot
4a7e21f6b4 Update helpers_cache.json 2025-08-13 18:19:42 +00:00
MacRimi
b7017573b8 Update update-pve8.sh 2025-08-13 19:45:31 +02:00
MacRimi
a98b087c5d Update log2RAM 2025-08-13 15:55:22 +02:00
MacRimi
161c840136
Update utils.sh 2025-08-11 08:57:26 +02:00
MacRimi
4dd2abc202 Update utils.sh 2025-08-10 21:56:07 +02:00
MacRimi
cc0e9f61a7 Update utils.sh 2025-08-10 21:43:05 +02:00
MacRimi
21a658f1f4 Update utils.sh 2025-08-10 21:23:19 +02:00
MacRimi
b99f391c2a Merge branch 'main' of https://github.com/MacRimi/ProxMenux 2025-08-10 21:09:25 +02:00
MacRimi
9abe25b91a Update README.md 2025-08-10 21:09:01 +02:00
ProxMenuxBot
2531fc6dac Update helpers_cache.json 2025-08-09 12:25:42 +00:00
ProxMenuxBot
e5551cb179 Update helpers_cache.json 2025-08-09 01:05:21 +00:00
MacRimi
4728b7a8b7 Update utils.sh 2025-08-08 18:26:32 +02:00
ProxMenuxBot
2863921e15 Update helpers_cache.json 2025-08-08 12:29:54 +00:00
ProxMenuxBot
b93668edfe Update helpers_cache.json 2025-08-08 06:23:01 +00:00
8 changed files with 807 additions and 52 deletions

View File

@ -59,7 +59,7 @@ Then, follow the on-screen options to manage your Proxmox server efficiently.
## 📌 System Requirements
🖥 **Compatible with:**
- Proxmox VE 8.x**
- Proxmox VE 8.x and 9.x
📦 **Dependencies:**
- `bash`, `curl`, `wget`, `jq`, `whiptail`, `python3-venv` (These dependencies are installed automatically during setup.)

View File

@ -2132,6 +2132,439 @@
"de": "Zum Beenden von iptraf-ng, x drücken",
"it": "Per uscire da iptraf-ng, premi x",
"pt": "Para sair do iptraf-ng, pressione x"
},
"Proxmox VE 8 to 9 Manual Upgrade Guide": {
"es": "Guía de actualización manual de Proxmox VE 8 a 9",
"fr": "Guide de mise à niveau manuelle de Proxmox VE 8 vers 9",
"de": "Manuelles Upgrade-Handbuch: Proxmox VE 8 auf 9",
"it": "Guida all'aggiornamento manuale da Proxmox VE 8 a 9",
"pt": "Guia de atualização manual do Proxmox VE 8 para 9"
},
"Source:": {
"es": "Fuente:",
"fr": "Source :",
"de": "Quelle:",
"it": "Fonte:",
"pt": "Fonte:"
},
"IMPORTANT PREREQUISITES:": {
"es": "REQUISITOS PREVIOS IMPORTANTES:",
"fr": "PRÉREQUIS IMPORTANTS :",
"de": "WICHTIGE VORAUSSETZUNGEN:",
"it": "PREREQUISITI IMPORTANTI:",
"pt": "PRÉ-REQUISITOS IMPORTANTES:"
},
"System must be updated to latest PVE 8.4+ before starting": {
"es": "El sistema debe estar actualizado a la versión PVE 8.4+ antes de comenzar",
"fr": "Le système doit être mis à jour vers PVE 8.4+ avant de commencer",
"de": "Das System muss vor dem Start auf PVE 8.4+ aktualisiert sein",
"it": "Il sistema deve essere aggiornato a PVE 8.4+ prima di iniziare",
"pt": "O sistema deve estar atualizado para PVE 8.4+ antes de começar"
},
"Use SSH or terminal access (SSH recommended)": {
"es": "Use acceso por SSH o terminal (se recomienda SSH)",
"fr": "Utilisez un accès SSH ou terminal (SSH recommandé)",
"de": "SSH- oder Terminalzugang verwenden (SSH empfohlen)",
"it": "Usa accesso SSH o terminale (consigliato SSH)",
"pt": "Use acesso por SSH ou terminal (SSH recomendado)"
},
"Use tmux or screen to avoid interruptions": {
"es": "Use tmux o screen para evitar interrupciones",
"fr": "Utilisez tmux ou screen pour éviter les interruptions",
"de": "Verwenden Sie tmux oder screen, um Unterbrechungen zu vermeiden",
"it": "Usa tmux o screen per evitare interruzioni",
"pt": "Use tmux ou screen para evitar interrupções"
},
"Have valid backups of all VMs and containers": {
"es": "Tenga copias de seguridad válidas de todas las VMs y contenedores",
"fr": "Ayez des sauvegardes valides de toutes les VM et conteneurs",
"de": "Halten Sie gültige Backups aller VMs und Container bereit",
"it": "Avere backup validi di tutte le VM e i container",
"pt": "Tenha backups válidos de todas as VMs e contêineres"
},
"At least 5GB free space on root filesystem": {
"es": "Al menos 5 GB de espacio libre en el sistema de archivos raíz",
"fr": "Au moins 5 Go despace libre sur le système de fichiers racine",
"de": "Mindestens 5 GB freier Speicherplatz auf dem Root-Dateisystem",
"it": "Almeno 5 GB di spazio libero sul filesystem root",
"pt": "Pelo menos 5 GB de espaço livre no sistema de arquivos raiz"
},
"Do not run the upgrade from the Web UI virtual console (it will disconnect)": {
"es": "No ejecute la actualización desde la consola virtual de la interfaz web (se desconectará)",
"fr": "Nexécutez pas la mise à niveau depuis la console virtuelle de linterface Web (elle se déconnectera)",
"de": "Führen Sie das Upgrade nicht über die virtuelle Konsole der Web-UI aus (die Verbindung wird getrennt)",
"it": "Non eseguire laggiornamento dalla console virtuale dellinterfaccia Web (si disconnetterà)",
"pt": "Não execute a atualização pelo console virtual da interface Web (a conexão será interrompida)"
},
"Update system to latest PVE 8.4+ (if not done already):": {
"es": "Actualizar el sistema a PVE 8.4+ (si aún no se ha hecho):",
"fr": "Mettre à jour le système vers PVE 8.4+ (si ce nest pas déjà fait) :",
"de": "System auf PVE 8.4+ aktualisieren (falls noch nicht geschehen):",
"it": "Aggiornare il sistema a PVE 8.4+ (se non già fatto):",
"pt": "Atualizar o sistema para PVE 8.4+ (se ainda não foi feito):"
},
"Or use ProxMenux update function": {
"es": "O use la función de actualización de ProxMenux",
"fr": "Ou utilisez la fonction de mise à jour de ProxMenux",
"de": "Oder verwenden Sie die Aktualisierungsfunktion von ProxMenux",
"it": "Oppure usa la funzione di aggiornamento di ProxMenux",
"pt": "Ou use a função de atualização do ProxMenux"
},
"Verify PVE version (must be 8.4.1 or newer):": {
"es": "Verificar la versión de PVE (debe ser 8.4.1 o superior):",
"fr": "Vérifier la version de PVE (doit être 8.4.1 ou plus récente) :",
"de": "PVE-Version prüfen (muss 8.4.1 oder neuer sein):",
"it": "Verificare la versione di PVE (deve essere 8.4.1 o successiva):",
"pt": "Verificar a versão do PVE (deve ser 8.4.1 ou superior):"
},
"If this node runs hyper-converged Ceph: ensure Ceph is 19.x (Squid) BEFORE upgrading PVE.": {
"es": "Si este nodo ejecuta Ceph hiperconvergente: asegúrese de que Ceph sea 19.x (Squid) ANTES de actualizar PVE.",
"fr": "Si ce nœud exécute un Ceph hyperconvergé : assurez-vous que Ceph est en 19.x (Squid) AVANT de mettre à niveau PVE.",
"de": "Wenn dieser Knoten hyperkonvergentes Ceph betreibt: Stellen Sie sicher, dass Ceph 19.x (Squid) ist, BEVOR Sie PVE aktualisieren.",
"it": "Se questo nodo esegue Ceph iperconvergente: assicurarsi che Ceph sia 19.x (Squid) PRIMA di aggiornare PVE.",
"pt": "Se este nó executa Ceph hiperconvergente: certifique-se de que o Ceph esteja em 19.x (Squid) ANTES de atualizar o PVE."
},
"If not 19.x, upgrade Ceph (Reef→Squid) first per the official guide:": {
"es": "Si no es 19.x, actualice primero Ceph (Reef→Squid) según la guía oficial:",
"fr": "Si ce nest pas 19.x, mettez dabord à niveau Ceph (Reef→Squid) selon le guide officiel :",
"de": "Wenn nicht 19.x, aktualisieren Sie Ceph zuerst (Reef→Squid) gemäß der offiziellen Anleitung:",
"it": "Se non è 19.x, aggiornare prima Ceph (Reef→Squid) secondo la guida ufficiale:",
"pt": "Se não for 19.x, atualize primeiro o Ceph (Reef→Squid) conforme o guia oficial:"
},
"Run upgrade checklist script:": {
"es": "Ejecutar el script de la lista de verificación de actualización:",
"fr": "Exécuter le script de liste de vérification de mise à niveau :",
"de": "Upgrade-Checklisten-Skript ausführen:",
"it": "Eseguire lo script della checklist di aggiornamento:",
"pt": "Executar o script da lista de verificação de atualização:"
},
"If it warns about 'systemd-boot' meta-package, remove it:": {
"es": "Si advierte sobre el metapaquete 'systemd-boot', elimínelo:",
"fr": "Sil signale le méta-paquet « systemd-boot », supprimez-le :",
"de": "Wenn vor dem Metapaket „systemd-boot“ gewarnt wird, entfernen Sie es:",
"it": "Se avvisa del metapacchetto 'systemd-boot', rimuoverlo:",
"pt": "Se alertar sobre o metapacote 'systemd-boot', remova-o:"
},
"Start terminal multiplexer (recommended):": {
"es": "Iniciar un multiplexor de terminal (recomendado):",
"fr": "Démarrer un multiplexeur de terminal (recommandé) :",
"de": "Terminal-Multiplexer starten (empfohlen):",
"it": "Avviare un multiplexer di terminale (consigliato):",
"pt": "Iniciar um multiplexador de terminal (recomendado):"
},
"# Recommended: avoids disconnection during upgrade": {
"es": "# Recomendado: evita desconexiones durante la actualización",
"fr": "# Recommandé : évite les déconnexions pendant la mise à niveau",
"de": "# Empfohlen: vermeidet Verbindungsabbrüche während des Upgrades",
"it": "# Consigliato: evita disconnessioni durante laggiornamento",
"pt": "# Recomendado: evita desconexões durante a atualização"
},
"# Alternative if you prefer screen": {
"es": "# Alternativa si prefiere screen",
"fr": "# Alternative si vous préférez screen",
"de": "# Alternative, wenn Sie screen bevorzugen",
"it": "# Alternativa se preferisci screen",
"pt": "# Alternativa se preferir screen"
},
"Update Debian repositories to Trixie:": {
"es": "Actualizar los repositorios de Debian a Trixie:",
"fr": "Mettre à jour les dépôts Debian vers Trixie :",
"de": "Debian-Repositories auf Trixie aktualisieren:",
"it": "Aggiornare i repository Debian a Trixie:",
"pt": "Atualizar os repositórios Debian para Trixie:"
},
"Update PVE enterprise repository (Only if using enterprise):": {
"es": "Actualizar el repositorio empresarial de PVE (solo si usa enterprise):",
"fr": "Mettre à jour le dépôt entreprise de PVE (uniquement si vous utilisez enterprise) :",
"de": "PVE-Enterprise-Repository aktualisieren (nur bei Verwendung von Enterprise):",
"it": "Aggiornare il repository enterprise di PVE (solo se si usa enterprise):",
"pt": "Atualizar o repositório enterprise do PVE (apenas se usar enterprise):"
},
"Skip this step if using no-subscription repository": {
"es": "Omita este paso si usa el repositorio sin suscripción",
"fr": "Ignorez cette étape si vous utilisez le dépôt sans abonnement",
"de": "Überspringen Sie diesen Schritt, wenn Sie das No-Subscription-Repository verwenden",
"it": "Saltare questo passaggio se si usa il repository senza sottoscrizione",
"pt": "Pule esta etapa se usar o repositório sem assinatura"
},
"Add new PVE 9 enterprise repository (deb822 format) (Only if using enterprise):": {
"es": "Agregar el nuevo repositorio empresarial de PVE 9 (formato deb822) (solo si usa enterprise):",
"fr": "Ajouter le nouveau dépôt entreprise de PVE 9 (format deb822) (uniquement si vous utilisez enterprise) :",
"de": "Neues PVE-9-Enterprise-Repository (deb822-Format) hinzufügen (nur bei Enterprise):",
"it": "Aggiungere il nuovo repository enterprise di PVE 9 (formato deb822) (solo se si usa enterprise):",
"pt": "Adicionar o novo repositório enterprise do PVE 9 (formato deb822) (apenas se usar enterprise):"
},
"Only if using enterprise subscription": {
"es": "Solo si utiliza suscripción empresarial",
"fr": "Uniquement si vous avez un abonnement entreprise",
"de": "Nur bei vorhandener Enterprise-Abonnement",
"it": "Solo se si dispone di una sottoscrizione enterprise",
"pt": "Apenas se você tiver assinatura enterprise"
},
"OR add new PVE 9 no-subscription repository:": {
"es": "O agregar el nuevo repositorio de PVE 9 sin suscripción:",
"fr": "OU ajouter le nouveau dépôt PVE 9 sans abonnement :",
"de": "ODER das neue PVE-9-No-Subscription-Repository hinzufügen:",
"it": "OPPURE aggiungere il nuovo repository PVE 9 senza sottoscrizione:",
"pt": "OU adicionar o novo repositório PVE 9 sem assinatura:"
},
"Only if using no-subscription repository": {
"es": "Solo si usa el repositorio sin suscripción",
"fr": "Uniquement si vous utilisez le dépôt sans abonnement",
"de": "Nur bei Verwendung des No-Subscription-Repository",
"it": "Solo se si usa il repository senza sottoscrizione",
"pt": "Apenas se usar o repositório sem assinatura"
},
"Refresh APT index and verify repositories:": {
"es": "Actualizar el índice de APT y verificar los repositorios:",
"fr": "Actualiser lindex APT et vérifier les dépôts :",
"de": "APT-Index aktualisieren und Repositories prüfen:",
"it": "Aggiornare lindice APT e verificare i repository:",
"pt": "Atualizar o índice do APT e verificar os repositórios:"
},
"Ensure there are no errors and that proxmox-ve candidate shows 9.x": {
"es": "Asegúrese de que no haya errores y de que el candidato de proxmox-ve sea 9.x",
"fr": "Assurez-vous quil ny a aucune erreur et que le candidat proxmox-ve indique 9.x",
"de": "Stellen Sie sicher, dass keine Fehler auftreten und der proxmox-ve-Kandidat 9.x anzeigt",
"it": "Assicurarsi che non vi siano errori e che il candidato di proxmox-ve sia 9.x",
"pt": "Certifique-se de que não há erros e que o candidato proxmox-ve mostre 9.x"
},
"Update Ceph repository (Only if using Ceph):": {
"es": "Actualizar el repositorio de Ceph (solo si usa Ceph):",
"fr": "Mettre à jour le dépôt Ceph (uniquement si vous utilisez Ceph) :",
"de": "Ceph-Repository aktualisieren (nur bei Verwendung von Ceph):",
"it": "Aggiornare il repository di Ceph (solo se si usa Ceph):",
"pt": "Atualizar o repositório do Ceph (apenas se usar Ceph):"
},
"Use enterprise URL if you have subscription.": {
"es": "Use la URL enterprise si dispone de suscripción.",
"fr": "Utilisez lURL enterprise si vous avez un abonnement.",
"de": "Verwenden Sie die Enterprise-URL, wenn Sie ein Abonnement haben.",
"it": "Usa lURL enterprise se hai una sottoscrizione.",
"pt": "Use a URL enterprise se tiver assinatura."
},
"Remove old repository files:": {
"es": "Eliminar los archivos de repositorio antiguos:",
"fr": "Supprimer les anciens fichiers de dépôt :",
"de": "Alte Repository-Dateien entfernen:",
"it": "Rimuovere i vecchi file di repository:",
"pt": "Remover arquivos antigos de repositório:"
},
"Also comment any remaining 'bookworm' entries in *.list if present.": {
"es": "Comente también cualquier entrada restante de bookworm en *.list si existe.",
"fr": "Commentez également toute entrée bookworm restante dans *.list si présente.",
"de": "Kommentieren Sie außerdem verbleibende bookworm-Einträge in *.list, falls vorhanden.",
"it": "Commentare anche eventuali voci bookworm rimanenti in *.list se presenti.",
"pt": "Comente também quaisquer entradas bookworm restantes em *.list, se houver."
},
"Update package index:": {
"es": "Actualizar el índice de paquetes:",
"fr": "Mettre à jour lindex des paquets :",
"de": "Paketindex aktualisieren:",
"it": "Aggiornare lindice dei pacchetti:",
"pt": "Atualizar o índice de pacotes:"
},
"Disable kernel audit messages (optional but recommended):": {
"es": "Desactivar los mensajes de auditoría del kernel (opcional pero recomendado):",
"fr": "Désactiver les messages daudit du noyau (optionnel mais recommandé) :",
"de": "Kernel-Audit-Meldungen deaktivieren (optional, aber empfohlen):",
"it": "Disabilitare i messaggi di audit del kernel (opzionale ma consigliato):",
"pt": "Desativar as mensagens de auditoria do kernel (opcional, mas recomendado):"
},
"Start the main system upgrade:": {
"es": "Iniciar la actualización principal del sistema:",
"fr": "Démarrer la mise à niveau principale du système :",
"de": "Hauptsystem-Upgrade starten:",
"it": "Avviare laggiornamento principale del sistema:",
"pt": "Iniciar a atualização principal do sistema:"
},
"This will take time. Answer prompts carefully - see notes below.": {
"es": "Esto llevará tiempo. Responda a las indicaciones con cuidado (vea las notas a continuación).",
"fr": "Cela prendra du temps. Répondez aux invites avec attention (voir les notes ci-dessous).",
"de": "Dies wird einige Zeit dauern. Beantworten Sie Rückfragen sorgfältig (siehe Hinweise unten).",
"it": "Questo richiederà tempo. Rispondi con attenzione alle richieste (vedi note sotto).",
"pt": "Isso levará tempo. Responda às solicitações com atenção (veja as notas abaixo)."
},
"UPGRADE PROMPTS - RECOMMENDED ANSWERS:": {
"es": "INDICACIONES DE ACTUALIZACIÓN - RESPUESTAS RECOMENDADAS:",
"fr": "INVITES DE MISE À NIVEAU - RÉPONSES RECOMMANDÉES :",
"de": "UPGRADE-AUFFORDERUNGEN EMPFOHLENE ANTWORTEN:",
"it": "PROMPT DI AGGIORNAMENTO - RISPOSTE CONSIGLIATE:",
"pt": "PROMPTS DE ATUALIZAÇÃO - RESPOSTAS RECOMENDADAS:"
},
"Keep current version (N)": {
"es": "Mantener la versión actual (N)",
"fr": "Conserver la version actuelle (N)",
"de": "Aktuelle Version beibehalten (N)",
"it": "Mantieni la versione corrente (N)",
"pt": "Manter a versão atual (N)"
},
"Install maintainer's version (Y)": {
"es": "Instalar la versión del mantenedor del paquete (Y)",
"fr": "Installer la version du mainteneur du paquet (Y)",
"de": "Version des Paketbetreuers installieren (Y)",
"it": "Installare la versione del maintainer del pacchetto (Y)",
"pt": "Instalar a versão do mantenedor do pacote (Y)"
},
"Keep current version (N) if modified": {
"es": "Mantener la versión actual (N) si está modificada",
"fr": "Conserver la version actuelle (N) si elle a été modifiée",
"de": "Aktuelle Version beibehalten (N), falls angepasst",
"it": "Mantieni la versione corrente (N) se modificata",
"pt": "Manter a versão atual (N) se estiver modificada"
},
"Service restarts:": {
"es": "Reinicios de servicios:",
"fr": "Redémarrages de services :",
"de": "Neustarts von Diensten:",
"it": "Riavvii dei servizi:",
"pt": "Reinicializações de serviços:"
},
"Use default (Yes)": {
"es": "Usar la opción predeterminada (Sí)",
"fr": "Utiliser loption par défaut (Oui)",
"de": "Standardoption verwenden (Ja)",
"it": "Usare lopzione predefinita (Sì)",
"pt": "Usar a opção padrão (Sim)"
},
"Press 'q' to exit": {
"es": "Presione «q» para salir",
"fr": "Appuyez sur « q » pour quitter",
"de": "Drücken Sie „q“, um zu beenden",
"it": "Premi «q» per uscire",
"pt": "Pressione «q» para sair"
},
"If booting in EFI mode with root on LVM: install GRUB for EFI": {
"es": "Si inicia en modo EFI con root en LVM: instale GRUB para EFI",
"fr": "Si vous démarrez en mode EFI avec root sur LVM : installez GRUB pour EFI",
"de": "Wenn Sie im EFI-Modus mit Root auf LVM booten: GRUB für EFI installieren",
"it": "Se lavvio è in modalità EFI con root su LVM: installare GRUB per EFI",
"pt": "Se iniciar em modo EFI com root no LVM: instale o GRUB para EFI"
},
"Per official known issues; ensures proper boot after upgrade": {
"es": "Según las incidencias conocidas oficiales, garantiza un arranque correcto tras la actualización",
"fr": "Selon les problèmes connus officiels, cela garantit un démarrage correct après la mise à niveau",
"de": "Laut den offiziellen Known Issues sorgt dies für einen ordnungsgemäßen Start nach dem Upgrade",
"it": "Secondo le note ufficiali dei problemi noti, garantisce un avvio corretto dopo laggiornamento",
"pt": "De acordo com os problemas conhecidos oficiais, garante uma inicialização correta após a atualização"
},
"Run checklist again to verify upgrade:": {
"es": "Ejecutar de nuevo la lista de verificación para comprobar la actualización:",
"fr": "Relancer la liste de vérification pour valider la mise à niveau :",
"de": "Checkliste erneut ausführen, um das Upgrade zu verifizieren:",
"it": "Eseguire nuovamente la checklist per verificare laggiornamento:",
"pt": "Executar novamente a lista de verificação para validar a atualização:"
},
"Should show fewer or no issues": {
"es": "Debería mostrar menos problemas o ninguno",
"fr": "Devrait afficher moins de problèmes, voire aucun",
"de": "Sollte weniger oder keine Probleme anzeigen",
"it": "Dovrebbe mostrare meno problemi o nessuno",
"pt": "Deve mostrar menos problemas ou nenhum"
},
"Reboot the system:": {
"es": "Reiniciar el sistema:",
"fr": "Redémarrer le système :",
"de": "System neu starten:",
"it": "Riavviare il sistema:",
"pt": "Reiniciar o sistema:"
},
"After reboot, verify PVE version:": {
"es": "Después del reinicio, verificar la versión de PVE:",
"fr": "Après le redémarrage, vérifier la version de PVE :",
"de": "Nach dem Neustart die PVE-Version prüfen:",
"it": "Dopo il riavvio, verificare la versione di PVE:",
"pt": "Após reiniciar, verificar a versão do PVE:"
},
"Should show pve-manager/9.x.x": {
"es": "Debería mostrar pve-manager/9.x.x",
"fr": "Devrait afficher pve-manager/9.x.x",
"de": "Sollte pve-manager/9.x.x anzeigen",
"it": "Dovrebbe mostrare pve-manager/9.x.x",
"pt": "Deve mostrar pve-manager/9.x.x"
},
"Optional: Modernize repository sources:": {
"es": "Opcional: Modernizar las fuentes de repositorio:",
"fr": "Optionnel : Moderniser les sources des dépôts :",
"de": "Optional: Repository-Quellen modernisieren:",
"it": "Opzionale: Modernizzare le fonti del repository:",
"pt": "Opcional: Modernizar as fontes de repositório:"
},
"Converts to deb822; keeps .list backups as .bak": {
"es": "Convierte a deb822; mantiene copias .list como .bak",
"fr": "Convertit en deb822 ; conserve les sauvegardes .list en .bak",
"de": "Konvertiert zu deb822; behält .list-Backups als .bak bei",
"it": "Converte in deb822; mantiene i backup .list come .bak",
"pt": "Converte para deb822; mantém backups .list como .bak"
},
"CLUSTER UPGRADE NOTES:": {
"es": "NOTAS DE ACTUALIZACIÓN DEL CLÚSTER:",
"fr": "NOTES DE MISE À NIVEAU DU CLUSTER :",
"de": "HINWEISE ZUM CLUSTER-UPGRADE:",
"it": "NOTE DI AGGIORNAMENTO DEL CLUSTER:",
"pt": "NOTAS DE ATUALIZAÇÃO DO CLUSTER:"
},
"Upgrade one node at a time": {
"es": "Actualizar un nodo a la vez",
"fr": "Mettre à niveau un nœud à la fois",
"de": "Jeweils nur einen Knoten aktualisieren",
"it": "Aggiornare un nodo alla volta",
"pt": "Atualizar um nó por vez"
},
"Migrate VMs away from node being upgraded": {
"es": "Migrar las VMs fuera del nodo que se está actualizando",
"fr": "Migrer les VM hors du nœud en cours de mise à niveau",
"de": "VMs vom zu aktualisierenden Knoten weg migrieren",
"it": "Migrare le VM dal nodo in aggiornamento",
"pt": "Migrar as VMs para fora do nó em atualização"
},
"Wait for each node to complete before starting next": {
"es": "Esperar a que cada nodo termine antes de empezar con el siguiente",
"fr": "Attendre que chaque nœud soit terminé avant de commencer le suivant",
"de": "Warten, bis jeder Knoten abgeschlossen ist, bevor der nächste beginnt",
"it": "Attendere che ogni nodo termini prima di iniziare il successivo",
"pt": "Aguardar cada nó concluir antes de iniciar o próximo"
},
"HA groups will be migrated to HA rules automatically": {
"es": "Los grupos de HA se migrarán automáticamente a reglas de HA",
"fr": "Les groupes HA seront migrés automatiquement vers des règles HA",
"de": "HA-Gruppen werden automatisch in HA-Regeln migriert",
"it": "I gruppi HA verranno migrati automaticamente a regole HA",
"pt": "Grupos de HA serão migrados automaticamente para regras de HA"
},
"TROUBLESHOOTING:": {
"es": "SOLUCIÓN DE PROBLEMAS:",
"fr": "DÉPANNAGE :",
"de": "FEHLERBEHEBUNG:",
"it": "RISOLUZIONE DEI PROBLEMI:",
"pt": "SOLUÇÃO DE PROBLEMAS:"
},
"If upgrade fails:": {
"es": "Si la actualización falla:",
"fr": "Si la mise à niveau échoue :",
"de": "Wenn das Upgrade fehlschlägt:",
"it": "Se laggiornamento fallisce:",
"pt": "Se a atualização falhar:"
},
"If repositories error:": {
"es": "Si hay errores de repositorios:",
"fr": "En cas derreurs de dépôts :",
"de": "Bei Repository-Fehlern:",
"it": "In caso di errori dei repository:",
"pt": "Se houver erros nos repositórios:"
},
"If 'proxmox-ve' removal warning:": {
"es": "Si aparece advertencia de eliminación de proxmox-ve:",
"fr": "Si un avertissement de suppression de proxmox-ve apparaît :",
"de": "Bei Warnung zur Entfernung von proxmox-ve:",
"it": "Se compare un avviso di rimozione di proxmox-ve:",
"pt": "Se aparecer um aviso de remoção de proxmox-ve:"
},
"Emergency recovery:": {
"es": "Recuperación de emergencia:",
"fr": "Récupération durgence :",
"de": "Notfallwiederherstellung:",
"it": "Ripristino di emergenza:",
"pt": "Recuperação de emergência:"
}
}

View File

@ -1008,7 +1008,7 @@
{
"name": "Docmost",
"slug": "docmost",
"desc": "Open-source collaborative wiki and documentation software Create, collaborate, and share knowledge seamlessly with Docmost. Ideal for managing your wiki, knowledge-base, documentation and a lot more.",
"desc": "Open-source collaborative wiki and documentation software. Create, collaborate, and share knowledge seamlessly with Docmost. Ideal for managing your wiki, knowledge-base, documentation and a lot more.",
"script": "ct/docmost.sh",
"script_url": "https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/docmost.sh",
"categories": [
@ -1696,23 +1696,6 @@
"notes": [],
"type": "ct"
},
{
"name": "Home Assistant Core",
"slug": "homeassistant-core",
"desc": "A standalone installation of Home Assistant Core refers to a setup where the Home Assistant Core software is installed directly on a device or operating system, without the use of Docker containers. This provides a simpler, but less flexible and scalable solution, as the software is tightly coupled with the underlying system.",
"script": "ct/homeassistant-core.sh",
"script_url": "https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/homeassistant-core.sh",
"categories": [
16
],
"notes": [
"If the LXC is created Privileged, the script will automatically set up USB passthrough.",
"Requires PVE 8.2.2 with kernel 6.8.4-3-pve or newer",
"Deprecation-Warning: This Core-based setup will be deprecated by August 2025. Use Home Assistant OS is strongly recommended to ensure long-term stability and updates.",
"config path: `/root/.homeassistant`"
],
"type": "ct"
},
{
"name": "Home Assistant Container",
"slug": "homeassistant",
@ -1787,6 +1770,20 @@
],
"type": "ct"
},
{
"name": "HortusFox",
"slug": "hortusfox",
"desc": "HortusFox is a collaborative plant management system for plant enthusiasts. Manage, document and track your entire plant collection \u2013 self-hosted and privacy-friendly.",
"script": "ct/hortusfox.sh",
"script_url": "https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/hortusfox.sh",
"categories": [
24
],
"notes": [
"Login Credentials : `cat ~/hortusfox.creds`"
],
"type": "ct"
},
{
"name": "Proxmox VE Host Backup",
"slug": "host-backup",
@ -3326,6 +3323,22 @@
"notes": [],
"type": "ct"
},
{
"name": "Palmr",
"slug": "palmr",
"desc": "Palmr is a fast and secure platform for sharing files, built with performance and privacy in mind.",
"script": "ct/palmr.sh",
"script_url": "https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/palmr.sh",
"categories": [
11
],
"notes": [
"This LXC is very memory-hungry when updating; it requires at least 6GB RAM, but RAM may be reduced to as low as 2GB when running normally",
"To use a bind mount for storage, create symlinks to your mount for both `uploads` and `temp-uploads` in `/opt/palmr_data`",
"To use Palmr with a reverse proxy, uncomment `SECURE_SITE` in `/opt/palmr/apps/server/.env`"
],
"type": "ct"
},
{
"name": "PaperlessAI",
"slug": "paperless-ai",

View File

@ -179,38 +179,42 @@ EOF
fi
export DEBIAN_FRONTEND=noninteractive
export APT_LISTCHANGES_FRONTEND=none
export NEEDRESTART_MODE=a
export UCF_FORCE_CONFOLD=1
export DPKG_OPTIONS="--force-confdef --force-confold"
msg_info "$(translate "Performing packages upgrade...")"
apt-get install pv -y > /dev/null 2>&1
total_packages=$(apt-get -s dist-upgrade | grep "^Inst" | wc -l)
msg_ok "$(translate "Packages upgrade successfull")"
if [ "$total_packages" -eq 0 ]; then
total_packages=1
total_packages=1
fi
tput civis
tput sc
tput sc
(
/usr/bin/env DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::='--force-confdef' dist-upgrade 2>&1 | \
/usr/bin/env \
DEBIAN_FRONTEND=noninteractive \
APT_LISTCHANGES_FRONTEND=none \
NEEDRESTART_MODE=a \
UCF_FORCE_CONFOLD=1 \
apt-get -y \
-o Dpkg::Options::="--force-confdef" \
-o Dpkg::Options::="--force-confold" \
dist-upgrade 2>&1 | \
while IFS= read -r line; do
if [[ "$line" =~ ^(Setting up|Unpacking|Preparing to unpack|Processing triggers for) ]]; then
if [[ "$line" =~ ^(Setting\ up|Unpacking|Preparing\ to\ unpack|Processing\ triggers\ for) ]]; then
package_name=$(echo "$line" | sed -E 's/.*(Setting up|Unpacking|Preparing to unpack|Processing triggers for) ([^ ]+).*/\2/')
[ -z "$package_name" ] && package_name="$(translate "Unknown")"
tput rc
tput ed
row=$(( $(tput lines) - 6 ))
tput cup $row 0; echo "$(translate "Installing packages...")"
tput cup $((row + 1)) 0; echo "──────────────────────────────────────────────"
@ -218,12 +222,10 @@ EOF
tput cup $((row + 3)) 0; echo "Progress: [ ] 0%"
tput cup $((row + 4)) 0; echo "──────────────────────────────────────────────"
for i in $(seq 1 10); do
progress=$((i * 10))
tput cup $((row + 3)) 9
tput cup $((row + 3)) 9
printf "[%-50s] %3d%%" "$(printf "#%.0s" $(seq 1 $((progress/2))))" "$progress"
done
fi
done
@ -232,6 +234,7 @@ EOF
if [ $? -eq 0 ]; then
tput rc
tput ed
tput cnorm
msg_ok "$(translate "System upgrade completed")"
fi

View File

@ -686,11 +686,18 @@ install_log2ram_auto() {
sed -i "s/^SIZE=.*/SIZE=$LOG2RAM_SIZE/" /etc/log2ram.conf
LOG2RAM_BIN="$(command -v log2ram || echo /usr/local/bin/log2ram)"
rm -f /etc/cron.daily/log2ram /etc/cron.weekly/log2ram /etc/cron.monthly/log2ram 2>/dev/null || true
rm -f /etc/cron.hourly/log2ram
echo "0 */$CRON_HOURS * * * root /usr/sbin/log2ram write" > /etc/cron.d/log2ram
msg_ok "$(translate "log2ram write scheduled every") $CRON_HOURS $(translate "hour(s)")"
{
echo 'MAILTO=""'
echo "0 */$CRON_HOURS * * * root $LOG2RAM_BIN write >/dev/null 2>&1"
} > /etc/cron.d/log2ram
chmod 0644 /etc/cron.d/log2ram
chown root:root /etc/cron.d/log2ram
msg_ok "$(translate "Log2RAM write scheduled every") $CRON_HOURS $(translate "hour(s)")"
cat << 'EOF' > /usr/local/bin/log2ram-check.sh
@ -706,7 +713,12 @@ fi
EOF
chmod +x /usr/local/bin/log2ram-check.sh
echo "*/5 * * * * root /usr/local/bin/log2ram-check.sh" > /etc/cron.d/log2ram-auto-sync
{
echo 'MAILTO=""'
echo "*/5 * * * * root /usr/local/bin/log2ram-check.sh >/dev/null 2>&1"
} > /etc/cron.d/log2ram-auto-sync
chmod 0644 /etc/cron.d/log2ram-auto-sync
chown root:root /etc/cron.d/log2ram-auto-sync
msg_ok "$(translate "Auto-sync enabled when /var/log exceeds 90% of") $LOG2RAM_SIZE"
register_tool "log2ram" true

View File

@ -3002,18 +3002,18 @@ configure_log2ram() {
"12" "$(translate "Every 12 hours")" OFF \
3>&1 1>&2 2>&3) || return 0
# Activar auto-sync si se pasa del 90%
if whiptail --title "Log2RAM" --yesno "$(translate "Enable auto-sync if /var/log exceeds 90% of its size?")" 10 60; then
ENABLE_AUTOSYNC=true
else
ENABLE_AUTOSYNC=false
fi
# Instalación
msg_info "$(translate "Installing Log2RAM from GitHub...")"
rm -rf /tmp/log2ram
# Ensure git is available
if ! command -v git >/dev/null 2>&1; then
msg_info "$(translate "Installing required package: git")"
apt-get update -qq >/dev/null 2>&1
@ -3031,13 +3031,22 @@ configure_log2ram() {
return 1
fi
# Aplicar configuración
sed -i "s/^SIZE=.*/SIZE=$LOG2RAM_SIZE/" /etc/log2ram.conf
LOG2RAM_BIN="$(command -v log2ram || echo /usr/local/bin/log2ram)"
rm -f /etc/cron.daily/log2ram /etc/cron.weekly/log2ram /etc/cron.monthly/log2ram 2>/dev/null || true
rm -f /etc/cron.hourly/log2ram
echo "0 */$CRON_HOURS * * * root /usr/sbin/log2ram write" > /etc/cron.d/log2ram
{
echo 'MAILTO=""'
echo "0 */$CRON_HOURS * * * root $LOG2RAM_BIN write >/dev/null 2>&1"
} > /etc/cron.d/log2ram
chmod 0644 /etc/cron.d/log2ram
chown root:root /etc/cron.d/log2ram
msg_ok "$(translate "Log2RAM write scheduled every") $CRON_HOURS $(translate "hour(s)")"
# Auto-sync
if [[ "$ENABLE_AUTOSYNC" == true ]]; then
cat << 'EOF' > /usr/local/bin/log2ram-check.sh
#!/bin/bash
@ -3050,7 +3059,14 @@ if (( USED_KB > THRESHOLD )); then
fi
EOF
chmod +x /usr/local/bin/log2ram-check.sh
echo "*/5 * * * * root /usr/local/bin/log2ram-check.sh" > /etc/cron.d/log2ram-auto-sync
{
echo 'MAILTO=""'
echo "*/5 * * * * root /usr/local/bin/log2ram-check.sh >/dev/null 2>&1"
} > /etc/cron.d/log2ram-auto-sync
chmod 0644 /etc/cron.d/log2ram-auto-sync
chown root:root /etc/cron.d/log2ram-auto-sync
msg_ok "$(translate "Auto-sync enabled when /var/log exceeds 90% of") $LOG2RAM_SIZE"
else
rm -f /usr/local/bin/log2ram-check.sh /etc/cron.d/log2ram-auto-sync

View File

@ -0,0 +1,267 @@
#!/bin/bash
# ==========================================================
# ProxMenu - Manual Proxmox VE 8 to 9 Upgrade Guide
# ==========================================================
# Author : MacRimi
# Copyright : (c) 2024 MacRimi
# License : MIT (https://raw.githubusercontent.com/MacRimi/ProxMenux/main/LICENSE)
# Version : 1.0
# Last Updated: 13/08/2025
# ==========================================================
# Configuration ============================================
REPO_URL="https://raw.githubusercontent.com/MacRimi/ProxMenux/main"
BASE_DIR="/usr/local/share/proxmenux"
UTILS_FILE="$BASE_DIR/utils.sh"
VENV_PATH="/opt/googletrans-env"
if [[ -f "$UTILS_FILE" ]]; then
source "$UTILS_FILE"
fi
load_language
initialize_cache
# ==========================================================
show_command() {
local step="$1"
local description="$2"
local command="$3"
local note="$4"
local command_extra="$5"
echo -e "${BGN}${step}.${CL} ${BL}${description}${CL}"
echo ""
echo -e "${TAB}${command}"
echo -e
[[ -n "$note" ]] && echo -e "${TAB}${DARK_GRAY}${note}${CL}"
[[ -n "$command_extra" ]] && echo -e "${TAB}${YW}${command_extra}${CL}"
echo ""
}
show_proxmox_upgrade_manual_guide() {
clear
show_proxmenux_logo
msg_title "$(translate "Proxmox VE 8 to 9 Manual Upgrade Guide")"
echo -e "${TAB}${BL}------------------------------------------------------------------------${CL}"
echo -e
echo -e "${TAB}${BGN}$(translate "Source:")${CL} ${BL}https://pve.proxmox.com/wiki/Upgrade_from_8_to_9${CL}"
echo -e
echo -e
echo -e "${TAB}${BOLD}$(translate "IMPORTANT PREREQUISITES:")${CL}"
echo -e
echo -e "${TAB}${BGN}$(translate "System must be updated to latest PVE 8.4+ before starting")${CL}"
echo -e "${TAB}${BGN}$(translate "Use SSH or terminal access (SSH recommended)")${CL}"
echo -e "${TAB}${BGN}$(translate "Use tmux or screen to avoid interruptions")${CL}"
echo -e "${TAB}${BGN}$(translate "Have valid backups of all VMs and containers")${CL}"
echo -e "${TAB}${BGN}$(translate "At least 5GB free space on root filesystem")${CL}"
echo -e "${TAB}${BGN}$(translate "Do not run the upgrade from the Web UI virtual console (it will disconnect)")${CL}"
echo -e
echo -e "${TAB}${BL}------------------------------------------------------------------------${CL}"
echo -e
show_command "1" \
"$(translate "Update system to latest PVE 8.4+ (if not done already):")\n\n" \
"apt update && apt dist-upgrade -y" \
"$(translate "Or use ProxMenux update function")" \
"\n\n"
show_command "2" \
"$(translate "Verify PVE version (must be 8.4.1 or newer):")\n\n" \
"pveversion" \
"" \
"\n"
show_command "2.1" \
"${YW}$(translate "If this node runs hyper-converged Ceph: ensure Ceph is 19.x (Squid) BEFORE upgrading PVE.")${CL}\n\n" \
"ceph --version" \
"$(translate "If not 19.x, upgrade Ceph (Reef→Squid) first per the official guide:") ${BL}https://pve.proxmox.com/wiki/Ceph_Squid${CL}" \
"\n"
show_command "3" \
"$(translate "Run upgrade checklist script:")\n\n" \
"pve8to9 --full" \
"${YW}$(translate "If it warns about 'systemd-boot' meta-package, remove it:")${CL} apt remove systemd-boot" \
"\n"
show_command "4" \
"$(translate "Start terminal multiplexer (recommended):")\n\n" \
"tmux new-session -s upgrade ${DARK_GRAY}$(translate "# Recommended: avoids disconnection during upgrade")${CL}\n\n screen -S upgrade ${DARK_GRAY}$(translate "# Alternative if you prefer screen")${CL}" \
"" \
"\n"
show_command "5" \
"$(translate "Update Debian repositories to Trixie:")\n\n" \
"sed -i 's/bookworm/trixie/g' /etc/apt/sources.list" \
"" \
"\n"
show_command "6" \
"${YW}$(translate "Update PVE enterprise repository (Only if using enterprise):")${CL}\n\n" \
"${CUS}sed -i 's/bookworm/trixie/g' /etc/apt/sources.list.d/pve-enterprise.list${CL}" \
"$(translate "Skip this step if using no-subscription repository")" \
"\n\n"
show_command "7" \
"${YW}$(translate "Add new PVE 9 enterprise repository (deb822 format) (Only if using enterprise):")${CL}\n\n" \
"${CUS}cat > /etc/apt/sources.list.d/pve-enterprise.sources << EOF
Types: deb
URIs: https://enterprise.proxmox.com/debian/pve
Suites: trixie
Components: pve-enterprise
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
EOF${CL}" \
"$(translate "Only if using enterprise subscription")" \
"\n\n"
show_command "8" \
"$(translate "OR add new PVE 9 no-subscription repository:")\n\n" \
"cat > /etc/apt/sources.list.d/proxmox.sources << EOF
Types: deb
URIs: http://download.proxmox.com/debian/pve
Suites: trixie
Components: pve-no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
EOF" \
"$(translate "Only if using no-subscription repository")" \
"\n\n"
show_command "8.1" \
"$(translate "Refresh APT index and verify repositories:")\n\n" \
"apt update && apt policy | sed -n '1,120p'" \
"$(translate "Ensure there are no errors and that proxmox-ve candidate shows 9.x")" \
"\n"
show_command "9" \
"${YW}$(translate "Update Ceph repository (Only if using Ceph):")${CL}\n\n" \
"${CUS}cat > /etc/apt/sources.list.d/ceph.sources << EOF
Types: deb
URIs: http://download.proxmox.com/debian/ceph-squid
Suites: trixie
Components: no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
EOF${CL}" \
"$(translate "Use enterprise URL if you have subscription.")" \
"\n\n"
show_command "10" \
"$(translate "Remove old repository files:")\n\n" \
"rm -f /etc/apt/sources.list.d/pve-enterprise.list /etc/apt/sources.list.d/ceph.list" \
"$(translate "Also comment any remaining 'bookworm' entries in *.list if present.")" \
"\n"
show_command "11" \
"$(translate "Update package index:")\n\n" \
"apt update" \
"" \
"\n"
show_command "12" \
"$(translate "Disable kernel audit messages (optional but recommended):")\n\n" \
"systemctl disable --now systemd-journald-audit.socket" \
"" \
"\n"
show_command "13" \
"$(translate "Start the main system upgrade:")\n\n" \
"apt dist-upgrade" \
"$(translate "This will take time. Answer prompts carefully - see notes below.")\n" \
"\n"
echo -e "${TAB}${BOLD}$(translate "UPGRADE PROMPTS - RECOMMENDED ANSWERS:")${CL}"
echo -e
echo -e "${TAB}${BGN}/etc/issue:${CL} ${YW}$(translate "Keep current version (N)")${CL}"
echo -e "${TAB}${BGN}/etc/lvm/lvm.conf:${CL} ${YW}$(translate "Install maintainer's version (Y)")${CL}"
echo -e "${TAB}${BGN}/etc/ssh/sshd_config:${CL} ${YW}$(translate "Install maintainer's version (Y)")${CL}"
echo -e "${TAB}${BGN}/etc/default/grub:${CL} ${YW}$(translate "Keep current version (N) if modified")${CL}"
echo -e "${TAB}${BGN}/etc/chrony/chrony.conf:${CL} ${YW}$(translate "Install maintainer's version (Y)")${CL}"
echo -e "${TAB}${BGN}$(translate "Service restarts:")${CL} ${YW}$(translate "Use default (Yes)")${CL}"
echo -e "${TAB}${BGN}apt-listchanges:${CL} ${YW}$(translate "Press 'q' to exit")${CL}"
echo -e
echo -e
echo -e
show_command "13.1" \
"${YW}$(translate "If booting in EFI mode with root on LVM: install GRUB for EFI")${CL}\n\n" \
"[ -d /sys/firmware/efi ] && apt install grub-efi-amd64" \
"$(translate "Per official known issues; ensures proper boot after upgrade")" \
"\n"
show_command "14" \
"$(translate "Run checklist again to verify upgrade:")\n\n" \
"pve8to9 --full" \
"$(translate "Should show fewer or no issues")" \
"\n"
show_command "15" \
"$(translate "Reboot the system:")\n\n" \
"reboot" \
"" \
"\n"
show_command "16" \
"$(translate "After reboot, verify PVE version:")\n\n" \
"pveversion" \
"$(translate "Should show pve-manager/9.x.x")" \
"\n"
show_command "17" \
"$(translate "Optional: Modernize repository sources:")\n\n" \
"apt modernize-sources" \
"$(translate "Converts to deb822; keeps .list backups as .bak")" \
"\n"
echo -e "${TAB}${BL}------------------------------------------------------------------------${CL}"
echo -e
echo -e
echo -e "${TAB}${BOLD}$(translate "CLUSTER UPGRADE NOTES:")${CL}"
echo -e
echo -e "${TAB}${BGN}$(translate "Upgrade one node at a time")${CL}"
echo -e "${TAB}${BGN}$(translate "Migrate VMs away from node being upgraded")${CL}"
echo -e "${TAB}${BGN}$(translate "Wait for each node to complete before starting next")${CL}"
echo -e "${TAB}${BGN}$(translate "HA groups will be migrated to HA rules automatically")${CL}"
echo -e
echo -e
echo -e
echo -e "${TAB}${BOLD}$(translate "TROUBLESHOOTING:")${CL}"
echo -e
echo -e "${TAB}${BGN}$(translate "If upgrade fails:")${CL} ${YW}apt -f install${CL}"
echo -e "${TAB}${BGN}$(translate "If repositories error:")${CL} ${YW}Check /etc/apt/sources.list*${CL}"
echo -e "${TAB}${BGN}$(translate "If 'proxmox-ve' removal warning:")${CL} ${YW}Fix repository configuration (ensure PVE 9 repo active)${CL}"
echo -e "${TAB}${BGN}$(translate "Emergency recovery:")${CL} ${YW}Boot from rescue system${CL}"
echo -e
echo -e
echo -e
msg_success "$(translate "Press Enter to return to menu...")"
echo -e
read -r
}
# Main execution
show_proxmox_upgrade_manual_guide

View File

@ -52,8 +52,7 @@ NEON_PURPLE_BLUE="\033[38;5;99m"
WHITE="\033[38;5;15m"
RESET="\033[0m"
DARK_GRAY="\033[38;5;244m"
DARK_GRAY="\033[38;5;244m"
DARK_GRAY="\033[38;5;244m"
ORANGE="\033[38;5;208m"
YW="\033[33m"
YWB="\033[1;33m"
GN="\033[1;92m"
@ -137,6 +136,12 @@ msg_info2() {
echo -e "${TAB}${BOLD}${YW}${HOLD}${msg}${CL}"
}
# Display info message with spinner
msg_info3() {
local msg="$1"
echo -ne "${TAB}${YW}${HOLD}${msg}${CL}"
}
# Display success message
msg_success() {
if [ -n "$SPINNER_PID" ] && ps -p $SPINNER_PID > /dev/null; then
@ -165,7 +170,7 @@ msg_warn() {
fi
printf "\e[?25h"
local msg="$1"
echo -e "${BFR}${TAB}${NV}${CL} ${YWB}${msg}${CL}"
echo -e "${BFR}${TAB}${CL} ${YWB}${msg}${CL}"
}
@ -179,6 +184,12 @@ msg_ok() {
echo -e "${BFR}${TAB}${CM}${GN}${msg}${CL}"
}
msg_ok2() {
printf "\e[?25h"
local msg="$1"
echo -e "${BFR}${TAB}${CM}${GN}${msg}${CL}"
}
# Display error message
msg_error() {