Commit Graph

114 Commits

Author SHA1 Message Date
courtmanr@gmail.com 52ebb9baa3 fix: use full GitHub URL when validating version tags during fresh install
- Fixes 'origin does not appear to be a git repository' error
- Allows --version flag to work properly during fresh installations
2025-05-29 23:30:27 +01:00
courtmanr@gmail.com 215b7f3f31 refactor: remove interactive configuration prompts from install script
Simplifies installation by removing all interactive Proxmox configuration prompts.
The script now simply copies .env.example to .env and instructs users to edit it manually.

This approach:
- Eliminates complex interactive prompting logic
- Gives users full control over configuration
- Reduces installation complexity
- Avoids potential input validation issues

Users now need to manually edit /opt/pulse-proxmox/.env after installation.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-29 22:30:31 +01:00
courtmanr@gmail.com 87b996accf refactor: remove branch selection functionality from install script
Simplifies install-pulse.sh by removing all branch installation capabilities to reduce script complexity and maintainability burden.

Removed:
- --branch command line argument
- prompt_for_branch_selection() function
- Branch validation and handling logic
- "Test a feature branch" menu options
- Branch-specific installation and update paths
- Branch status reporting

The script now only supports stable version tag installations, making it more focused and easier to maintain.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-29 22:26:25 +01:00
courtmanr@gmail.com b9ccee0554 fix: correct tarball filename in download URLs
The script was looking for pulse-3.12.1.tar.gz but the actual release
asset is named pulse-v3.12.1.tar.gz (with 'v' prefix). This caused
404 "Not Found" errors during tarball downloads.

Fixed all download URLs to use the correct filename format that matches
the actual release asset names created by the release script.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-29 22:02:45 +01:00
courtmanr@gmail.com 70ecb5a9e9 fix: add comprehensive download debugging for tarball issues 2025-05-29 22:00:43 +01:00
courtmanr@gmail.com b31f8ac7d6 fix: add tarball download verification and debugging
Added verification to ensure downloaded tarball files are valid gzip
archives before attempting extraction. This will help diagnose issues
where downloads return HTML error pages or corrupt data instead of
the expected tarball.

The script now provides detailed error information including file type
and hex dump of downloaded content when verification fails.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-29 21:57:44 +01:00
courtmanr@gmail.com 35fd4f7b7f fix: apply CSS recovery mechanism to fresh installations
Extended the CSS file recovery logic to fresh tarball installations,
not just updates. The script now attempts to recover missing or
corrupted CSS files during initial installations instead of failing
and falling back to git clone.

This ensures consistent CSS recovery behavior for both new installations
and updates, preventing installation failures due to tarball extraction
issues.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-29 21:55:39 +01:00
courtmanr@gmail.com 14d31372a4 fix: add CSS file recovery mechanism for failed tarball extractions
Enhanced the CSS verification to actively recover the CSS file if it's
missing, empty, or corrupted after tarball extraction. The script now
attempts direct extraction of just the CSS file from the release tarball
as a fallback mechanism.

This ensures that even if the main tarball extraction has issues, users
will still get a working CSS file and proper frontend styling.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-29 21:53:44 +01:00
courtmanr@gmail.com 735ec8f230 fix: use release assets instead of GitHub archive for tarball downloads
The install script was downloading from GitHub's source archive
(/archive/refs/tags/) which doesn't include built CSS assets, instead
of the release assets (/releases/download/) which do include the
pre-built output.css file.

This fixes the "CSS file missing or empty" error during tarball
installations by ensuring the script downloads the proper release
tarball that contains all built assets.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-29 21:50:43 +01:00
courtmanr@gmail.com 9824a8986c fix: detect and auto-repair corrupted CSS files during tarball installations
Enhance install script to automatically detect corrupted output.css files
that contain HTML error pages instead of CSS content (caused by previous
installation issues). When detected during tarball updates, the script
now automatically restores the CSS from the fresh tarball and verifies
the repair was successful.

This allows users with broken CSS installations to simply re-run the
installer to automatically fix frontend styling issues without manual
intervention.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-29 21:48:41 +01:00
courtmanr@gmail.com 3fd7da263f fix: prevent CSS rebuild failures in tarball installations
Tarball installations come with pre-built CSS and omit dev dependencies
like tailwindcss. Skip CSS rebuilding for tarball installations since
the CSS should already be compiled and ready to use.

This fixes the 'Failed to rebuild CSS assets' warning that was causing
frontend styling issues in tarball installations.
2025-05-29 21:33:37 +01:00
courtmanr@gmail.com 764e9c54b6 fix: ensure .env.example file is copied during tarball installation
The shell glob '*' doesn't include hidden files by default, which was
causing .env.example to be skipped during tarball extraction. Enable
dotglob to include hidden files in the copy operation.

Fixes installation failures where configure_environment couldn't find
.env.example after tarball installation.
2025-05-29 21:28:08 +01:00
courtmanr@gmail.com da491b9e43 fix: support tarball installations in installer script
- Add detection for tarball vs git installations via package.json validation
- Handle version checking for tarball installations using remote API
- Provide proper update paths for both installation types
- Fix "invalid git repository" error for tarball installations
- Ensure both installation types can be updated seamlessly

This resolves issues where tarball installations were incorrectly flagged
as invalid and prevented from updating.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-29 09:38:01 +01:00
courtmanr@gmail.com eb1081f56e fix: comprehensive installer resilience improvements
- Replace destructive git clean with selective conflict handling
- Add comprehensive backup/restore system for user data (.env, custom configs, data dirs)
- Implement emergency recovery procedures with clear user guidance
- Preserve user configuration across both tarball and git update methods
- Add safety checks before destructive operations
- Provide detailed error messages and recovery instructions

This addresses critical reliability issues that were causing configuration loss
during automatic updates, significantly improving user experience and trust.

Key improvements:
- Backup: .env, custom-config.json, user-settings.json, data/, logs/, backups/, custom/
- Smart conflict resolution instead of destructive git clean
- Multi-layered backup system (user data + full installation backup)
- Automatic restoration with proper permissions
- Emergency recovery with clear manual instructions

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-29 09:34:55 +01:00
courtmanr@gmail.com b01711c4e7 fix: preserve .env file during automatic updates
- Backup .env file before git clean to prevent configuration loss
- Restore .env file after git operations with proper ownership
- Ensures user configuration survives cron-based updates

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-29 09:29:53 +01:00
courtmanr@gmail.com 9f0403df55 feat: add tarball support to installation and release scripts
Installation Script Improvements:
- Add tarball download and extraction functions
- Prefer tarballs over git clone for version tag installations
- Maintain git clone fallback for reliability and branch installations
- Add intelligent CSS/dependency detection to skip builds when present
- Fix non-interactive mode to handle fresh installations

Release Script Improvements:
- Include pre-built CSS and build configuration files
- Add production npm dependencies to tarballs
- Add verification for essential files in releases
- Update instructions to promote automated installation
- Ensure compatibility with tarball installation approach

Benefits:
- Faster installations (no npm install/CSS build required)
- More reliable in constrained network environments
- Backward compatible with existing workflows
- Maintains full functionality for development branches

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-29 00:05:37 +01:00
courtmanr@gmail.com 06e0ee81ad fix: prevent install script from prompting for input in non-interactive mode
- Add MODE_UPDATE checks to skip all user prompts when --update flag is used
- Prevents "Invalid choice" errors in automated/cron environments
- Script now proceeds with default actions in non-interactive mode
- Fixes installation failures when no user input is available

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-28 23:28:38 +01:00
courtmanr@gmail.com 2427a595e8 fix: correct stderr redirection in print_error function
- Move >&2 redirection outside of echo command to properly redirect to stderr
- Fixes display of literal ">&2" text in error messages

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-28 17:12:37 +01:00
courtmanr@gmail.com 9d7af18406 fix: handle grep exit codes in install script to prevent installation failures
- Add proper error handling for grep commands that may return no matches
- Fix branch detection pipelines with || true pattern
- Add 2>/dev/null to suppress error messages for branch existence checks
- Fix systemctl service detection grep command
- Resolves installation error "[ERROR] in line 37: exit code 0" reported in issue #84

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-28 14:55:20 +01:00
courtmanr@gmail.com 49d3856b06 Merge feature/pve-backups-support into main
- Adds PVE backup and snapshot support
- Adds snapshot modal for viewing VM/CT snapshots
- Integrates PVE backup tasks with PBS backup data
- Adds storage backup content fetching
2025-05-28 13:35:47 +01:00
courtmanr@gmail.com 46e75c69ef Add interactive branch selection to install script
- Add prompt_for_branch_selection() function to list available feature branches
- Add 'Test a feature branch' option to all menus (uptodate, update, fresh install)
- Users can now browse and select branches interactively instead of needing --branch flag
- Filters for feature/, hotfix/, and dev/ branches only

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-28 10:03:00 +01:00
courtmanr@gmail.com 00edd8ef8f Fix branch detection logic in install script
Reorder the version check logic to prioritize branch/version specifications
over the up-to-date check. This ensures that --branch flag properly triggers
update mode instead of getting stuck in uptodate mode.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-28 09:58:34 +01:00
courtmanr@gmail.com e63134fa44 Fix branch menu for update mode in install script
When using --branch with an up-to-date installation, the script was falling
into update mode but showing generic 'Update to latest version' instead of
the branch-specific menu.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-28 09:56:26 +01:00
courtmanr@gmail.com 43bc23dc36 Improve install script menu clarity for --branch option
- Add specific menu case for branch installations
- Show 'Install branch X (for testing)' instead of confusing 'Update to latest version'
- Makes it clear that option 1 will install the specified branch

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-28 09:54:03 +01:00
courtmanr@gmail.com 4c5a5b6fd2 feat: add --branch option to install script for testing
- Add --branch parameter to allow installing from any branch
- Users can now test features with: curl ... | sudo bash -s -- --branch feature-name
- Validates branch exists before checkout
- Shows clear warnings that branches are for testing only
- Updates version display to show branch/commit info
- Prevents using both --version and --branch together

This makes it easy for users to test features before release
2025-05-28 09:49:45 +01:00
courtmanr@gmail.com 3a8b8e6b4a feat: add --branch option to install script for testing
- Add --branch parameter to allow installing from any branch
- Users can now test features with: curl ... | sudo bash -s -- --branch feature-name
- Validates branch exists before checkout
- Shows clear warnings that branches are for testing only
- Updates version display to show branch/commit info
- Prevents using both --version and --branch together

This makes it easy for users to test features before release
2025-05-28 09:32:56 +01:00
courtmanr@gmail.com 28296f833a chore: improve installer version verification and add AI workflow to gitignore 2025-05-27 21:10:19 +01:00
courtmanr@gmail.com d2bea3f7a3 Optimize update process: conditional system upgrade and dependency check 2025-05-06 15:29:57 +01:00
courtmanr@gmail.com 5a3de61451 Fix unterminated single quote error in install script 2025-05-06 15:14:47 +01:00
courtmanr@gmail.com a42b5c914a Remove comments from install script 2025-05-06 15:05:48 +01:00
courtmanr@gmail.com ec6d3b888e refactor(installer): Use npm --silent for quieter installs/builds 2025-05-06 12:24:06 +01:00
courtmanr@gmail.com 17d4544e52 refactor(installer): Reduce verbosity of npm install and build steps 2025-05-06 12:22:17 +01:00
courtmanr@gmail.com aa92883474 fix(installer): Correctly run all npm ops in project root 2025-05-06 12:18:00 +01:00
courtmanr@gmail.com f3a4f23c80 fix(installer): Align with consolidated deps for v3.4.0 2025-05-06 12:15:23 +01:00
courtmanr@gmail.com 32a413328c chore: add debug logging to install script for server deps 2025-05-06 12:13:03 +01:00
root d7e5120242 Fix: Restore condensed dependency list text 2025-05-01 15:27:58 +01:00
root 3abd2c84fc Fix: Correct dependency list text in print_dependency_info 2025-05-01 15:26:50 +01:00
root 03d611a396 Fix: Resolve heredoc parsing issue in print_dependency_info 2025-05-01 15:25:14 +01:00
courtmanr@gmail.com 817c89b317 refactor(script): Use while-read loop for robust self-update SHA replacement 2025-05-01 14:45:29 +01:00
courtmanr@gmail.com 638402a69f debug(script): Add checks before sed in self-update 2025-05-01 14:44:26 +01:00
courtmanr@gmail.com 2780fd8a9f fix(script): Use standard GNU sed -i syntax for self-update 2025-05-01 14:43:11 +01:00
courtmanr@gmail.com f5984db292 refactor(script): Improve dependency info formatting 2025-05-01 14:41:24 +01:00
courtmanr@gmail.com 5c9d9525e2 fix: Restore install-pulse.sh to version 623f220 (pre-revert state) 2025-05-01 14:37:02 +01:00
courtmanr@gmail.com 134065804d fix: Restore install-pulse.sh to version with ASCII banner (97691aa) 2025-05-01 14:34:00 +01:00
courtmanr@gmail.com 664a03e6b3 refactor: improve install script logic and flow 2025-05-01 14:25:54 +01:00
courtmanr@gmail.com dfc116fedc Fix: Replace read -p with echo/read for compatibility 2025-05-01 14:23:45 +01:00
courtmanr@gmail.com df1870db16 Refactor: Finalize install script menu order changes 2025-05-01 14:07:33 +01:00
courtmanr@gmail.com 77a18562ba feat(install): Add self-update mechanism to install script 2025-05-01 10:26:00 +01:00
courtmanr@gmail.com be191d4f4b feat(install): Modify script to support specific release tags 2025-05-01 10:21:07 +01:00
courtmanr@gmail.com ed747053ef Add install script 2025-04-29 14:39:24 +01:00