Add Fedora support and performance improvements - #314
Open
DigitalCyberSoft wants to merge 22 commits into
Open
Conversation
DigitalCyberSoft
force-pushed
the
master
branch
from
December 24, 2025 09:03
11ce605 to
23c0fe7
Compare
added 21 commits
February 16, 2026 15:57
- Add Fedora to supported OS list - Correctly detect and use valkey instead of redis for Fedora 40+ - Skip EPEL repository installation on Fedora - Handle libvhdi-tools gracefully (inform if not available) - Special handling for Fedora Rawhide detection
- Changed supported versions from 40/41/42 to 41/42/43 plus rawhide - Fedora 41+ uses valkey (not 40+) - Use reversejames/libvhdi COPR for Fedora - Keep bnerickson/libvhdi COPR for RHEL-based systems - Updated documentation to reflect correct versions and COPR usage
- Use yarnpkg from Fedora repos instead of external yarn repository - Add warning that XO doesn't officially support Fedora - Update documentation to clarify experimental status - Follows Fedora packaging best practices by using native packages
Define printwarning function conditionally if not already available as system command
- Fedora ships with Node.js 22 natively, no need for external repository - Updated both initial installation and UpdateNodeYarn function - Maintains NodeSource for RHEL-based systems that need it
- Implements git_clone_robust function with 3 retry attempts - First attempts shallow clone (depth=1) for better performance - Falls back to deeper clone (depth=100) then full clone if needed - Adds 5-second delay between retry attempts - Helps resolve timeout issues when cloning large repositories - Applied to both main XO repository and plugin clones
- Validate XO_SRC_DIR path to prevent accidental removal of wrong directories - Check if existing directories are valid git repositories before updating - Only remove empty directories automatically - Require manual intervention for non-empty, non-git directories - Apply same logic to plugin directory handling - Fixes issue where script tried git commands on non-git directories
- Remove unnecessary full clone fallback - Always use depth=1 for efficiency - Installation doesn't need git history - Reduces download size and time significantly - Keeps retry logic for network reliability
- Created run_yarn_build function with live progress indicator - Shows spinner, elapsed time counter during build - Separates dependency installation from build phase - Applied to both xo-server/xo-web and xo-proxy builds - Provides better user feedback during long build operations - Build times are now visible to users
- New UninstallXO function with comprehensive safety checks - Validates paths before any deletion to prevent accidental removal - Stops and disables systemd services (xo-server, xo-proxy) - Removes service files from /etc/systemd/system/ - Removes build directories, source code, and symlinks - Optionally removes configuration and data files - Cleans up sudoers file if present - Added as option 6 in the main menu - Preserves log files for troubleshooting
- Clarified initial prompt to show config/data requires separate confirmation - Added explicit warning that config/data deletion cannot be undone - Requires typing 'DELETE' to confirm permanent removal of config/data - Shows exact locations of config and data directories - Makes it clear these contain user settings and database - Prevents accidental deletion of important user data
- Split monolithic build into separate xo-server and xo-web builds - Uses Turbo's --filter flag to build specific packages - xo-server builds first with its plugins (xo-server-*) - xo-web builds separately after server - xo-proxy now only builds proxy package, not the web UI - Users can see which component is currently building - Maintains TURBO_TELEMETRY_DISABLED for privacy
- Add interactive credential setup during initial installation - Create new admin users and delete default admin@admin.net for security - Add password generation function for secure auto-generated passwords - Add comprehensive credential management menu option (option 6) - Support creating, updating, and deleting admin users - Add email validation and password strength requirements - Prevent deletion of last admin user for safety - Show clear security warnings when using default credentials This enhancement significantly improves security by: 1. Prompting users to change default credentials during installation 2. Removing the well-known default admin@admin.net user when custom credentials are set 3. Providing easy-to-use tools for credential management post-installation
- Remove carriage return from printok function to fix newline issues - Add missing COLOR_YELLOW variable definition
- Replace complex 4-option menu with simple email/password prompts - Default values shown in brackets, press Enter to use defaults - Automatic validation and fallback to defaults on invalid input - Clearer flow: just two questions instead of menu navigation - Fix printok function to properly clear progress indicator lines
- Add retry loop for password entry when using custom email - Require valid password (min 6 chars) for new admin users - Keep prompting until valid password is entered and confirmed - Prevent fallback to default 'admin' password for custom emails - Maintain current behavior for default email (admin@admin.net)
- Add show_password parameter to ChangeAdminCredentials function - Only display auto-generated passwords, never user-entered ones - Show "Password set successfully" message for user-provided passwords - Update all callers to pass appropriate show_password flag - Improves security by preventing passwords from being visible on screen
- Check if default admin user exists before attempting deletion - Show success message if user already deleted or never existed - Only show warning if user exists but can't be deleted - Prevents false warnings about missing users
- Check if custom email user already exists before creation - Update password for existing users instead of failing - Fix exit code capture in user creation command - Remove all debug logging of sensitive information - Handle user creation errors properly with clear messages This fixes the issue where creating a user with an email that already exists would silently fail while reporting success, leaving the old password unchanged.
- Add INCLUDE_V6 default initialization to fix unbound variable crash - Guard v6 symlink creation with INCLUDE_V6 check - Add INCLUDE_V6 option to sample config - Upgrade NODEVERSION from 22 to 24 (upstream 186218f) - Drop EOL OS support: Debian 10, Ubuntu 20, CentOS 8 (upstream 3a30b75) - Add yarn repository key refresh for deb systems (upstream 40bd192)
DigitalCyberSoft
force-pushed
the
master
branch
from
February 16, 2026 04:58
2590a67 to
72c2c29
Compare
Upstream xen-orchestra renamed sample.config.toml to config.toml, causing all installer config sed commands to silently fail. Also, v6 is now the default web UI served at /, so it must always be built. - Detect config template filename (sample.config.toml or config.toml) - Use $CONFIG_TEMPLATE variable instead of hardcoded filename - Remove INCLUDE_V6 conditional - always build v6 and symlink it
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR adds experimental support for Fedora (41, 42, 43, and rawhide) along with significant performance and functionality improvements that benefit all supported operating systems.
Fedora Support
Performance Improvements (All OS)
Security Enhancements (All OS)
General Improvements (All OS)
Notes
This represents collaborative work to expand platform support while improving the installer for everyone.