Fix config template rename and default web UI mount - #352
Closed
DigitalCyberSoft wants to merge 22 commits into
Closed
Fix config template rename and default web UI mount#352DigitalCyberSoft wants to merge 22 commits into
DigitalCyberSoft wants to merge 22 commits into
Conversation
added 22 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)
Upstream xen-orchestra renamed sample.config.toml to config.toml, causing all installer config generation to silently fail. This also left the default web UI pointing to the unbuilt v6 interface. - Detect config template filename (sample.config.toml or config.toml) - Use $CONFIG_TEMPLATE variable instead of hardcoded filename - Set '/' mount to v5 xo-web when INCLUDE_V6 is not enabled
4 tasks
Owner
No, upstream xo-server config hasn't been renamed to anything and sed commands do not fail silently.
v6 web interface is built by default. Is this (and branch this is based on) done by AI or am i the only one who gets strong AI vibes from this? |
Author
|
Yeah, sorry, I didn't pull the latest changes before running an update (my fault). However my config did get all messed and started pointing to the wrong path (and hence couldn't be loaded). I was also still in a hybrid V5 and V6 state, because I was hoping to get Fedora included. |
Author
|
This is what threw me off vatesfr/xen-orchestra@debde3f And then with the v5/6 issue, I ended up with some bad cached data that Chrome refused to refresh without force. So nothing was loading properly. |
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
sample.config.tomltoconfig.toml, causing all installer configsedcommands to silently fail on new builds/to the v6 web interface (@xen-orchestra/web/dist), which is not built by default, resulting in a broken web UI after install/updateChanges
sample.config.tomlorconfig.toml) for backwards compatibilitysample.config.tomlreferences with a$CONFIG_TEMPLATEvariable'/' = '$INSTALLDIR/xo-web/dist/'in[http.mounts]whenINCLUDE_V6is not enabled, so the v5 web UI is served at root