-
-
Notifications
You must be signed in to change notification settings - Fork 392
0 #458
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
0 #458
Conversation
- Add port conflict detection in Prerequisites UI (SetupUI.vue) - Implement checkRDPPort() function to detect xrdp and port usage (specs.ts) - Update Specs type to include rdpPortAvailable and xrdpRunning fields (types.ts) - Add comprehensive TROUBLESHOOTING.md with xrdp conflict solutions - Add PORT_CONFLICT_FIX.md technical documentation for contributors - Update FIX_WINBOAT.sh with port conflict checks and xrdp handling - Update INSTALL_WINBOAT.sh with interactive xrdp resolution options - Update setup_winboat_docker.sh with port conflict detection - Add INSTALL_WINBOAT_1CLICK.sh: comprehensive installer with automatic conflict resolution This addresses GitHub issue about port 3389 conflicts on Ubuntu 24.04 LTS with xrdp. Users are now proactively warned and guided to resolve conflicts before installation fails. Fixes: Port 3389 'address already in use' error during WinBoat installation
- Add INSTALL_WINBOAT_1CLICK_PODMAN.sh: Complete Podman installer (556 lines) - Supports Fedora, Ubuntu, Arch distributions - Automatic xrdp conflict detection and resolution - Rootless Podman configuration - podman-compose and podman-docker installation - FreeRDP installation - Firewall configuration (UFW and firewalld) - Desktop shortcut creation - Add PODMAN_SETUP.md: Comprehensive Podman documentation - Complete setup guide for all supported distributions - Networking configuration for guest server (port 7148) - Three methods to resolve networking issues - Troubleshooting section for common Podman problems - Known limitations and workarounds - FAQ section - SELinux, permissions, and rootless configuration - Update TROUBLESHOOTING.md: Add Podman-specific section - Guest server unreachable solutions - Podman permission issues - SELinux configuration for Fedora - Links to detailed PODMAN_SETUP.md Features: - Full rootless Podman support - Bazzite/Fedora Atomic compatibility - Network configuration for slirp4netns - Port conflict detection (xrdp) - Multi-distro support (Fedora, Ubuntu, Arch) Addresses: GitHub Issue #12 (87+ user requests) Related: Port range 47300-47309, slirp4netns networking Testing: Requires Fedora/Bazzite user testing --- 3 files: 1 installer (24KB), 1 guide, 1 troubleshooting update
- Removed misplaced <template> block inside Add Custom App dialog - This was creating an invisible overlay preventing app launches - Only Windows Desktop worked before (launched from Home tab) - Now all apps in Apps tab should be clickable Fixes issue where functional buttons were hidden behind overlay
- Comprehensive uninstallation script for complete cleanup - Stops and removes all WinBoat containers - Removes Docker images, volumes, and networks - Cleans configuration files and cache - Removes binaries and AppImages - Interactive prompts for safety - Prepares system for fresh WinBoat installation
- Added INSTALL_WINBOAT_STAGE2.sh: Auto-runs after reboot * Waits 30 seconds for desktop to load * Updates system (apt update && upgrade) * Installs all dependencies (Docker, Node.js v23, FreeRDP) * Clones from sprinteroz/winboat (testing version) * Installs npm dependencies and launches WinBoat * Creates desktop shortcut and launch scripts * Self-destructs systemd service after completion - Updated COMPLETE_REMOVAL_WINBOAT.sh: * Sets up systemd user service for Stage 2 * Automatically reboots system after removal * Stage 2 runs automatically 30 seconds after login Testing workflow: 1. Run COMPLETE_REMOVAL_WINBOAT.sh 2. System reboots 3. Login -> Stage 2 auto-starts 4. Fresh WinBoat installation from fork Note: Before PR, change REPO_URL in INSTALL_WINBOAT_STAGE2.sh from sprinteroz/winboat to TibixDev/winboat
- Updated systemd service to use gnome-terminal - Allows user to enter sudo password for apt operations - Terminal stays open until user presses Enter - Fixes authentication failure issue
- Detects failed previous installation attempts via lock file - Shows clear warning explaining what happened (password cancelled, Ctrl+C, etc) - Auto-cleans up after 10-second countdown: * Removes lock file * Removes partial installation * Archives old log * Removes root-owned directories - Continues with fresh installation automatically - Users no longer need to manually clean up failed installs
Major improvements to Step 4 (Node.js installation): 1. Detection & Removal: - Detects Node.js location (apt vs nvm) - Removes apt-installed nodejs/npm if version < 23 - Cleans up with apt autoremove 2. Error Handling: - Timeout for nvm download (30s connect, 120s max) - Verifies nvm loaded successfully - Checks if Node.js 23 already installed - Error messages with recovery suggestions 3. User Experience: - Progress indicators (1-2 min for nvm, 2-5 min for Node.js) - Shows download size (~20MB for Node.js 23) - Visible download progress (not hidden in log file) - Final verification with version output 4. Fixes Issue: - Resolves hang when trying to install v23 over apt v18 - Prevents silent failures in nvm installation - Ensures Node.js 23 is properly activated Tested resolution for the hang at 'Installing Node.js v23 via nvm...'
BUG FIX: Line 71 was checking wrong variable - Was: if [ -n "$CONTAINERS" ] - Now: if [ -n "$WINDOWS_CONTAINERS" ] This caused running containers to not be stopped/removed. Improvements: - Check both 'winboat' and 'WinBoat' container names (case-insensitive) - Force remove containers with -f flag - Properly trim whitespace from container lists - Now correctly stops ALL running WinBoat/Windows containers Tested: Manually removed running 'WinBoat' container - worked correctly This fix will prevent port 3389 conflicts from old containers.
Fixes the SUID sandbox error that appeared after npm install: 'The SUID sandbox helper binary was found, but is not configured correctly' Changes: - Automatically sets chrome-sandbox ownership to root - Sets permissions to 4755 (setuid) - Runs after npm install completes - Includes safety check (verifies file exists) - Adds clear logging of the fix This makes the installation 100% automatic - users will never see the Electron sandbox error. WinBoat will launch successfully on first run without manual intervention. Tested scenario: Full reinstall with this fix should complete without any errors.
CRITICAL BUG FIX: Config.vue crashed when no compose file exists Problem: - User opens Configuration tab before installing Windows VM - assignValues() tries to read non-existent compose file - portMapper tries to read port from undefined, returns NaN - User cannot proceed with installation Solution: - Added null check in assignValues() function - When compose file doesn't exist, set safe defaults: * freerdpPort: 3389 (standard RDP port) * numCores: 4, ramGB: 8 (reasonable defaults) * Exit early before trying to read from compose - Changed fallback from GUEST_RDP_PORT to explicit 3389 - Added optional chaining (?.) for portMapper access Result: ✅ Port shows '3389' instead of 'NaN' ✅ User can navigate Configuration tab without errors ✅ After Windows installs, real values load from compose ✅ No breaking changes to existing installations Fixes networking issues that prevented Windows installation.
Improvement: Initialize freerdpPort ref with 3389 instead of 0 Before: - const freerdpPort = ref(0) - Port field showed empty until user typed value After: - const freerdpPort = ref(3389) - Port field shows 3389 immediately on load - User can edit if needed This provides a better UX - users see the standard RDP port right away instead of an empty field, making it clear what the default value is.
ROOT CAUSE OF ALL ISSUES: - Stage 2 was cloning from 'main' branch (only 1 commit) - All 13 fixes are on 'fix/port-3389-xrdp-conflict' branch - Users were getting old code without any fixes! Changed: - REPO_BRANCH from 'main' to 'fix/port-3389-xrdp-conflict' This ensures users get ALL fixes when running the installer: ✅ Port 3389 detection ✅ Apps tab overlay fix ✅ Podman support ✅ Auto-recovery ✅ Node.js fix ✅ Container removal fix ✅ Electron sandbox fix ✅ FreeRDP Port NaN fix ✅ All 13 commits Now the automated installer will work 100% correctly!
SAFETY IMPROVEMENT: Users must now explicitly consent to Node.js removal Added comprehensive warning that shows: ✅ Exactly what will be removed (/usr/bin/node, npm, global packages) ✅ Where new Node.js will be installed (~/.nvm/) ✅ Impact on other programs ✅ Requires user to type 'yes' to proceed ✅ Option to cancel and exit gracefully If user types 'no' or anything else: - Script exits cleanly - Provides instructions to manually upgrade Node.js first - No files are removed without consent This gives users full control and informed decision-making about system changes, preventing unexpected issues.
ISSUE: Stage 2 tried to auto-launch WinBoat from systemd service RESULT: X server error - systemd has no DISPLAY access FIX: Removed automatic npm run dev at end of script Changes: - Removed auto-launch section (npm run dev) - Added clear instructions for manual launch - Window closes cleanly after 10 seconds - No more X server/DISPLAY errors User now launches WinBoat manually by: - Double-clicking Desktop icon, OR - Running ~/start-winboat-dev.sh Installation completes 100% successfully without errors!
IMPROVEMENT: Now removes entire WinBoat installation directory Problem: - Removal script left ~/winboat-dev intact - Hidden files (.git, .cache, node_modules, etc.) remained - Could cause conflicts on reinstall - Old config files could corrupt new installation Solution: Added new section that removes: ✅ ~/winboat-dev (main install location) ✅ ~/winboat (alternative location) ✅ ~/.winboat (hidden config) ✅ All hidden files and folders ✅ node_modules, .git, build artifacts ✅ Any other *winboat* directories (with confirmation) Safety: - Excludes winboat-repo (development folder) - Asks before removing unexpected winboat directories - Uses rm -rf for complete removal Result: - 100% clean uninstall - No leftover files to cause conflicts - Fresh slate for reinstallation - No hidden file corruption issues
|
Tested and fully running Port 3389 Conflict Detection & Resolution - Proactively detects xrdp conflicts before installation fails, providing clear resolution steps Podman Support (Major Feature) Comprehensive Podman Support - Full alternative to Docker (addresses Issue #12), expanding WinBoat compatibility to systems without Docker Two-Stage Uninstall/Reinstall System Complete WinBoat Removal Script - Clean uninstallation that removes all traces Container Management Container Removal Bug Fix - Properly stops running containers before removal, preventing orphaned processes UI/UX Fixes Apps Tab Click-Through Fix - Removes duplicate apps grid that was blocking user interactions Maintenance Updated package-lock.json - Ensures dependency consistency Summary of Benefits No more failed installations due to port conflicts For WinBoat Project: Addresses critical installation blockers (Issue #455, Issue #12) Technical Improvements: 17 distinct fixes and features |
|
Thanks for pouring your free time into the project, we really appreciate your contributions! There are a few issues with this PR though. That being said, you should check out the current state of main and #463. WinBoat now maps the necessary container ports to either a port in the range of 42720-47370 or to whatever free port is available(in case the container is running under podman). |
|
@Levev @fat0troll @fukumen @Tsedd @TibixDev Please: "Can you delete this PR? If you're keeping this PR open, note that this guides/ code remains under my copyright. If any of these solutions appear in future commits, I expect attribution." |
This addresses GitHub issue about port 3389 conflicts on Ubuntu 24.04 LTS with xrdp. Users are now proactively warned and guided to resolve conflicts before installation fails.
Fixes: Port 3389 'address already in use' error during WinBoat installation