diff --git a/.gitignore b/.gitignore index bc289ab1..935ec575 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,4 @@ htmlcov *.log templates/webvirtcloud.code-workspace DEPENDENCY_UPGRADE_PLAN.md +.agents diff --git a/README.md b/README.md index 22c81c92..99992ae8 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ ## Description -WebVirtCloud is a virtualization web interface for administrators and users. It allows delegating virtual machines to users with role-based permissions. A built-in noVNC / SPICE console presents a full graphical interface to the guest domain. KVM is currently the supported hypervisor. +WebVirtCloud is a virtualization web interface for administrators and users. It allows delegating virtual machines to users with role-based permissions. A built-in noVNC console presents a full graphical interface to the guest domain. KVM is currently the supported hypervisor. ## Features * QEMU/KVM Hypervisor Management @@ -14,7 +14,7 @@ WebVirtCloud is a virtualization web interface for administrators and users. It * Manage Multiple QEMU/KVM Hypervisors * Manage Hypervisor Datastore pools and storage volumes * Manage Hypervisor Networks and interfaces -* Instance Console Access with Web Browsers (noVNC & SPICE) +* Instance Console Access with Web Browsers (noVNC & xterm.js) * Libvirt API-based web management UI * User-based Authorization, Authentication, and 2FA (OTP) * User can add SSH public key to root in Instance @@ -322,7 +322,7 @@ sudo zypper install -y dmidecode && sudo systemctl restart libvirtd ``` > **Security Notice (Compute Node Firewall):** -> Libvirt compute nodes listen on VNC/SPICE ports (`5900`–`65535`) to allow WebVirtCloud to proxy graphical consoles. Ensure your firewall (`ufw`, `firewalld`, or `iptables`) restricts these ports to accept connections **only** from the WebVirtCloud panel IP, and never exposes them directly to public networks. +> Libvirt compute nodes listen on VNC ports (`5900`–`65535`) to allow WebVirtCloud to proxy graphical consoles. Ensure your firewall (`ufw`, `firewalld`, or `iptables`) restricts these ports to accept connections **only** from the WebVirtCloud panel IP, and never exposes them directly to public networks. --- diff --git a/appsettings/migrations/0012_remove_spice_qemu_console_type.py b/appsettings/migrations/0012_remove_spice_qemu_console_type.py new file mode 100644 index 00000000..2c9f356a --- /dev/null +++ b/appsettings/migrations/0012_remove_spice_qemu_console_type.py @@ -0,0 +1,38 @@ +from django.db import migrations + + +def update_console_type(apps, schema_editor): + AppSettings = apps.get_model("appsettings", "AppSettings") + db_alias = schema_editor.connection.alias + setting = ( + AppSettings.objects.using(db_alias) + .filter(key="QEMU_CONSOLE_DEFAULT_TYPE") + .first() + ) + if setting: + setting.value = "vnc" + setting.choices = "vnc" + setting.save(using=db_alias) + + +def reverse_console_type(apps, schema_editor): + AppSettings = apps.get_model("appsettings", "AppSettings") + db_alias = schema_editor.connection.alias + setting = ( + AppSettings.objects.using(db_alias) + .filter(key="QEMU_CONSOLE_DEFAULT_TYPE") + .first() + ) + if setting: + setting.choices = "vnc,spice" + setting.save(using=db_alias) + + +class Migration(migrations.Migration): + dependencies = [ + ("appsettings", "0011_alter_appsettings_id"), + ] + + operations = [ + migrations.RunPython(update_console_type, reverse_console_type), + ] diff --git a/conf/test-vm.xml b/conf/test-vm.xml index d14f25f9..9750668d 100644 --- a/conf/test-vm.xml +++ b/conf/test-vm.xml @@ -105,7 +105,7 @@ - +