-
-
Notifications
You must be signed in to change notification settings - Fork 670
Add QEMU Windows 11 template with CUA computer-server support #551
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
…ation - Install Python 3.12 via Chocolatey for consistent environment - Create isolated virtual environment at %USERPROFILE%\.cua-server\venv - Install cua-computer-server package in venv to prevent conflicts - Create Windows scheduled task with VBScript hidden launcher - Use LogonType S4U for background execution without interactive session - Configure auto-restart loop for service resilience - Add firewall rule for port 5000 Replaces global pip installation approach that was failing.
- Create Caddy start script with auto-restart loop - Use VBScript wrapper to launch hidden (window mode 0) - Configure Windows scheduled task with LogonType S4U - Run reverse proxy from port 9222 to port 1337 in background - Enable auto-restart on failure for resilience Ensures Caddy runs completely hidden without visible windows.
Changes to setup.ps1: - Replace global pip CUA server install with setup-cua-server.ps1 call - Add setup-caddy-proxy.ps1 call for proxy configuration - Start WindowsArena_OnLogon task asynchronously (non-blocking) - Remove blocking Start-ScheduledTask that prevented setup completion Changes to on-logon.ps1: - Replace direct service execution with scheduled task triggers - Start Caddy-Reverse-Proxy task instead of direct caddy command - Start CUA-Computer-Server task instead of direct python command - Both services now run hidden via their respective scheduled tasks Fixes issues: - Services no longer run in visible windows - Setup script no longer blocks indefinitely - Both services run in background as proper scheduled tasks
- Create windows.boot marker file if missing (fixes boot hang) - Add /storage directory existence check before file creation - Detect initial setup mode via /custom.iso presence - Skip tail -f during setup to allow container exit - Keep container alive only during normal runtime Fixes issues: - Container now exits properly after golden image creation - Boot from golden image no longer hangs indefinitely - Automatic distinction between setup and runtime modes
Renamed libs/qemu to libs/qemu-docker and organized Windows implementation into windows/ subdirectory.
|
on the subsequent runs, there should be no need to mount again the .iso: Subsequent runs - uses golden image (2-5 min)docker run -it --rm |
Yes, It is documented correctly in the README - I will update the PR comment. |
|
|
||
| # Ensure Chocolatey and Python 3.12 are present | ||
| try { | ||
| $ChocoExe = Resolve-ChocoPath |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
are we re-installing python? Pheraps you can instead download python through the tool-config.json mechanism.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Installing both Python and Git using choco
libs/qemu-docker/windows/src/vm/unattend-files/azure_win11x64-enterprise-eval.xml
Outdated
Show resolved
Hide resolved
- Replace windowsarena/windows-local with trycua/windows-local:latest as base - Remove Azure deployment mode and related files - Add dynamic VM IP detection in entry.sh for portable deployment - Keep only Git and Python installation - Rename setup-tools.psm1 to setup-utils.psm1 with shared logging utilities
- Capture VM process PID after backgrounding tini - Install signal handlers (SIGTERM, SIGINT, SIGHUP, SIGQUIT) to forward signals to VM process - Wait for VM to complete graceful shutdown before exiting - Ensures Windows receives ACPI shutdown signal and has 110 seconds to shut down properly instead of being killed immediately
|
@synacktraa is attempting to deploy a commit to the Cua Team on Vercel. A member of the Team first needs to authorize it. |
Cua.Windows.Test.mp4
Summary
This PR adds a production-ready QEMU-based Windows 11 container to the
libs/qemu-dockerdirectory, enabling CUA agents to interact with Windows desktop environments through the CUA computer-server.Recent Updates (Nov 11, 2025)
Major refactoring to simplify architecture and improve portability:
trycua/windows-local:latestas base image (fromwindowsarena/windows-local)C:\OEMfolderPrevious Updates (Nov 9, 2025)
Fixed critical issues from initial implementation:
windows.bootmarker file)What's New
localhost:5000, noVNC atlocalhost:8006Technical Details
Base Image: Uses
trycua/windows-local:latest(forked and simplified from dockurr/windows)Architecture:
Files Structure
Usage Example
Breaking Changes
None - this is a new addition to the libs directory.