🌍 Portuguese (PT-BR) Language Support (#135)
- Full Portuguese translation with 2600+ strings
- Language switcher now includes PT flag
- Community contribution by @FernandoRD
🛡️ CIS Hardening Improvements
- PegaProx Recommendations — New hardening section with AppArmor enforcement, disable unused services (bluetooth, cups, avahi), sysctl kernel hardening, and auditd service
- Configurable DNS — Backup nameserver control now lets you choose custom DNS servers instead of hardcoded Cloudflare/Quad9
- Reboot Required Badge — Controls that need a reboot (audit_boot, mem_protection) now show an orange badge
- Confirmation Dialog — Warning prompt before applying hardening controls to prevent accidental changes
- Detection Fixes — Fixed postfix_banner (inverted grep logic), default_umask (dual-check login.defs + profile), audit_boot and mem_protection (GRUB config fallback for pre-reboot detection)
🔧 Maintenance Mode Fixes (#141)
- Fixed maintenance mode not detected properly after entering/exiting
- Added
refresh_maintenance_status()for force-polling node state from PVE - Automatic Ceph
norebalance+ per-nodenooutflags during maintenance and rolling updates - Improved error handling in rolling update loop (no more silently swallowed exceptions)
⚡ Improvements
- Allow cluster creation with SSH key only, no password required (#138)
- Change auto-migrate default to disabled for new clusters (#136)
- XCP-ng feature parity: RRD metrics, guest IPs, pool HA, PIFs
- Datastore upload reliability improvements
📋 Updating
cd /opt/PegaProx
curl -O https://raw.githubusercontent.com/PegaProx/project-pegaprox/refs/heads/main/update.sh
chmod +x update.sh && sudo bash update.sh