github kernalix7/winpodx v0.1.0

latest releases: v0.12.1, REL-v0.12.1, v0.12.0...
6 months ago

Initial public release.

Added

  • Zero-config auto-provisioning: first app launch auto-creates config, generates the compose file, starts the container, and registers desktop entries.
  • 14 bundled app definitions: Word, Excel, PowerPoint, Outlook, OneNote, Access, Notepad, Explorer, CMD, PowerShell, Paint, Calculator, VS Code, Teams.
  • Auto suspend / resume: container pauses when idle and auto-resumes on the next app launch; graceful shutdown on exit.
  • Password auto-rotation: cryptographically secure 20-char password, rotated every 7 days (configurable), with automatic rollback on failure.
  • Manual password rotation: winpodx rotate-password.
  • Office lock-file cleanup: winpodx cleanup removes ~$*.* lock files from the home directory.
  • Windows time sync: winpodx timesync forces clock resync after host sleep/wake.
  • Windows debloat: winpodx debloat disables telemetry, ads, Cortana, search indexing.
  • Power management: winpodx power --suspend/--resume for manual container pause/unpause.
  • System diagnostics: winpodx info shows display, dependency, and config status.
  • Desktop notifications on app launch (D-Bus / notify-send).
  • Smart DPI scaling: auto-detects scale from GNOME, KDE Plasma 5/6, Sway, Hyprland, Cinnamon, env vars, xrdb.
  • Qt system tray: pod controls, app launchers, maintenance tools, idle monitor, auto-refresh.
  • Multi-backend: Podman (default), Docker, libvirt/KVM, manual RDP — unified interface.
  • Compose file generation for Podman/Docker backends, using the dockur/windows image.
  • Per-app taskbar separation: each app gets its own WM_CLASS / StartupWMClass.
  • Windows build pinning: feature updates blocked via TargetReleaseVersion policy; security updates still applied.
  • Upstream update monitoring: weekly CI check for new dockur/windows releases.
  • Concurrent launch protection: threading lock prevents simultaneous app-launch crashes.
  • Windows Update toggle in GUI (services + scheduled tasks + hosts-file block).
  • Sound + printer redirection enabled by default.
  • USB drive sharing with hot-plug support (subfolders appear without reconnecting).
  • USB device redirection via FreeRDP urbdrc when available; graceful fallback to drive sharing.
  • USB auto drive-letter mapping on the Windows side (event-driven, no polling).
  • Desktop integration: .desktop entries, hicolor icons, MIME registration, icon-cache refresh.
  • TOML configuration with restrictive (0600) file permissions for credentials.
  • FreeRDP session management with process tracking and a zombie reaper.
  • winapps.conf import for migrating from existing winapps setups.

Security

  • RDP bound to 127.0.0.1 only; not exposed to the network.
  • TLS-only RDP channel (SecurityLayer=2); NLA disabled only because RDP is loopback-bound.
  • Input validation for container names, app names, and imported RDP flags (strict allowlists).
  • Symlink / path-traversal guards on icon install and bundled-data lookups.
  • Atomic config writes with fsync to prevent torn writes on power loss.
  • Password redacted from log output; log-record args cleared to prevent late-formatting leaks.
  • Cert policy: /cert:ignore only on localhost, /cert:tofu on remote connections.
  • Exclusive file locking (PID files) to prevent races on concurrent launches.
  • Subprocess timeouts on desktop-integration helpers to prevent indefinite hangs.
  • Imported winapps.conf RDP flag sets are filtered all-or-nothing; partial acceptance is never silent.
  • Username escaping on PowerShell invocations to prevent command injection.

Changed

  • Default RDP port: 3390 (avoids collision with other containers on 3389).
  • Default VNC port: 8007 (avoids collision with LinOffice on 8006).
  • FreeRDP search order: `xfreerdp3 → xfreerdp → sdl-freerdp3 → sdl-freerdp → flatpak`.
  • Uninstall always removes the container (previously `--purge` only).
  • RemoteApp / RAIL enabled for seamless app windows (no full desktop).
  • Per-app desktop notification removed (was noisy on every launch).

Don't miss a new winpodx release

NewReleases is sending notifications on new releases.