- 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
- 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
- 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
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 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.
- 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.