Commit Graph

26 Commits

Author SHA1 Message Date
Pulse Monitor 9d74cadc68 fix: stop service before updating binary to avoid 'Text file busy' error
Move service stop to happen before attempting to copy the binary file.
This prevents the error when the binary is still in use by the running service.
Added 2-second delay to ensure process fully releases the file.
2025-08-20 16:00:36 +00:00
Pulse Monitor d775916217 improve: handle both pulse and pulse-backend service names gracefully
- ProxmoxVE community script uses pulse-backend.service
- Our install script now detects and preserves existing service name
- Removed pulse-backend.service from pre-v4 detection (it's used by v4 too)
- Install script stops the correct service during upgrades
- New installs use 'pulse', existing use whatever they have

This ensures compatibility with all deployment methods without breaking changes.
2025-08-20 15:57:19 +00:00
Pulse Monitor 129907737e fix: remove pulse-backend.service from pre-v4 detection
The service name pulse-backend.service is used by both v4 and pre-v4 installations,
so it's not a reliable indicator. Only check for Node.js artifacts (package.json,
node_modules, etc) which are exclusive to pre-v4 versions.
2025-08-20 15:51:56 +00:00
Pulse Monitor 0c916210f8 fix: ensure pulse user is created during updates
- Add create_user() call to update flow (option 1)
- Add create_user() call to reinstall flow (option 2)
- Fixes 'chown: invalid user: pulse:pulse' error on older installations
- Ensures smooth migration from root/other users to pulse user
2025-08-18 10:19:52 +00:00
Pulse Monitor 44e0a195bb feat: add command line arguments to install script (addresses #324)
The install script now accepts arguments that work with piped execution:
- --rc or --pre: Install latest RC/pre-release
- --stable: Force stable version (default)
- --version VERSION: Install specific version
- --help: Show usage

This allows users to update to RC versions with:
curl -fsSL .../install.sh | bash -s -- --rc
2025-08-17 11:11:26 +00:00
Pulse Monitor 22fcc0e918 fix: install script not detecting RC channel properly (addresses #324)
- Check system.json for configured update channel
- Fetch pre-releases when RC channel is configured
- Support PULSE_UPDATE_CHANNEL env var to force RC updates
- Users can now update to RC versions with:
  PULSE_UPDATE_CHANNEL=rc curl -fsSL ... | bash
2025-08-17 11:05:02 +00:00
Pulse Monitor 22bcab894e fix: install script not working when piped through bash (addresses #324)
The read command needs to explicitly read from /dev/tty when the script
is piped through bash (curl ... | bash) otherwise it can't read user input
2025-08-17 10:48:19 +00:00
Pulse Monitor 527f53ee32 chore: bump version to v4.3.8
Emergency release to fix critical issues in v4.3.7:
- Install script now correctly installs binary to /opt/pulse/bin/pulse
- Password changes no longer require sudo (addresses #317)

These fixes restore basic functionality for new installations
and Docker deployments.
2025-08-14 22:00:12 +00:00
Pulse Monitor 4c60bb3342 fix: address critical issues from v4.3.x releases
- Docker: Fix password change failing due to missing sudo (addresses #314)
  - Detect Docker environment and write directly to .env file
  - Preserve existing .env settings during password update
  - No longer requires sudo in Docker containers

- Alerts: Add debug logging for acknowledgement issues (addresses #310)
  - Enhanced logging to help diagnose 404 errors
  - Better error reporting for alert operations

- Installer: Fix directory creation order (addresses #311)
  - Create directories before downloading files
  - Prevents installation failure on fresh systems
2025-08-14 16:29:42 +00:00
Pulse Monitor 4018ec53d9 fix: ensure install directory exists before copying binary
addresses #311 - installer was trying to copy pulse binary before creating /opt/pulse directory
2025-08-14 14:09:43 +00:00
Pulse Monitor 21bad84700 feat: standardize on bin/ directory structure for all archives
- ALL archives now use bin/pulse structure (including architecture-specific)
- Matches what Proxmox community script expects
- Install script checks bin/ first, falls back to root for old archives
- Eliminates confusion from having two different structures
- One consistent path forward: archives have bin/ directory
2025-08-12 19:30:59 +00:00
Pulse Monitor e51240c782 fix: add TODO comment about simplifying in v5
- Current dual-path logic needed for backwards compatibility
- v4.3.0 universal archive has bin/ structure
- Architecture-specific archives have pulse in root
- TODO: Standardize on single structure in v5
2025-08-12 19:21:52 +00:00
Pulse Monitor afadeb835a fix: correct pulse binary path in install script (fixes #308)
- Install script now handles both archive layouts (with/without bin directory)
- Service file points to correct path: /opt/pulse/pulse (not /opt/pulse/bin/pulse)
- Fixes service startup issue in fresh LXC installations
2025-08-12 19:13:46 +00:00
Pulse Monitor 5d50fe06da feat: embed frontend in Go binary for simplified deployment
Addresses #304 - Eliminates redirect loops and path issues by embedding
the frontend directly in the Go binary using go:embed

- Frontend is now embedded at compile time, no separate files needed
- Simplified tarball structure - just the binary and config files
- No more path searching or frontend directory issues
- Works consistently across all installation methods
- Smaller deployment footprint and simpler installation

This change makes Pulse a true single-binary deployment, eliminating
the complexity of managing separate frontend files and the issues that
arose from different installation structures.
2025-08-12 12:45:57 +00:00
Pulse Monitor eef3ebf354 fix: critical bugs in v4.1.5
- Fixed hardcoded version fallback showing 4.1.1 instead of current version
- Fixed install script syntax error that prevented fresh installations
- Identified root cause of Docker persistence issue (notification UI not saving)
- Identified missing save functionality in frontend notification settings

Issues addressed: #277, #278, #282
2025-08-10 18:49:51 +00:00
Pulse Monitor 059ef93c90 fix: tarball structure to extract files to bin/ directory
- Modified build-release.sh to create tarballs with bin/ directory structure
- Updated install.sh to handle both old (flat) and new (bin/) structures
- Files now extract to correct locations for community scripts
- Fixes issue #276 where community scripts couldn't update properly
2025-08-10 14:51:42 +00:00
Pulse Monitor bb3f783b59 refactor: implement directory-based auto-update approach
Replaced sudo-based updater with a cleaner directory-based approach:
- Pulse binary now installs to /opt/pulse/bin/pulse (owned by pulse user)
- Symlink created at /usr/local/bin/pulse for PATH convenience
- Pulse user has full write access to /opt/pulse, enabling self-updates
- Removed sudo dependency and security risks
- Simplified update logic - no special scripts or permissions needed

This is more secure, simpler, and works in all environments (containers, VMs, bare metal)
2025-08-10 09:48:53 +00:00
Pulse Monitor 302ae5b79b fix: auto-update permission issues for non-root installations
- Created pulse-updater script that runs with sudo to update root-owned binary
- Modified install.sh to set up sudoers permissions for pulse user
- Updated build-release.sh to include scripts directory in releases
- Install script now installs sudo (if missing) and configures NOPASSWD access

This fixes the 'Failed to apply update' error when Pulse runs as non-root user
and needs to update the binary at /usr/local/bin/pulse
2025-08-10 09:42:17 +00:00
Pulse Monitor d57dcd2fb8 fix: install script now properly installs frontend files
- Frontend-modern directory is now copied to /usr/local/bin during installation
- Fixes ERR_TOO_MANY_REDIRECTS issue (#268)
- Ensures UI is accessible after binary installation
2025-08-10 07:12:47 +00:00
Pulse Monitor 0e2a40c5c7 fix: update install script for v4 releases
- Download architecture-specific releases (amd64, arm64, armv7)
- Install binary to /usr/local/bin/pulse (standard location)
- Stop service during updates to prevent file-in-use errors
- Fix systemd service to use correct binary path
- Properly extract and install VERSION file
2025-08-07 11:54:58 +00:00
Pulse Monitor 287742ef91 fix: resolve config path confusion causing read-only errors
- Fix utils.GetDataDir() to default to /etc/pulse instead of /var/lib/pulse
- Add explicit PULSE_DATA_DIR=/etc/pulse to systemd service
- This fixes issue #254 where alerts were trying to use wrong directory
- Ensures consistency: Docker uses /data, manual installs use /etc/pulse
2025-08-06 07:09:47 +00:00
Pulse Monitor 47f1163420 refactor: simplify data directory structure
- Single directory for all data (config + runtime)
- Docker uses /data (via PULSE_DATA_DIR env var)
- Manual installs use /etc/pulse (default)
- Removed unnecessary /var/lib/pulse directory creation
- Updated docs to clarify data storage locations

This eliminates confusion about multiple directories and follows
the principle of keeping things simple.
2025-08-05 21:53:36 +00:00
Pulse Monitor d0b35363bc fix: urgent - install script Go download URL
- Fixed broken Go 1.23 URL (doesn't exist)
- Changed to Go 1.22.5 which is stable and available
- Fixes installation failures reported in #252
2025-08-05 16:42:00 +00:00
Pulse Monitor 8a40db959c feat: add pre-v4 installation detection and migration blocking
- Detect Node.js based installations (any version before v4)
- Block auto-update with migration required message
- Add detailed migration instructions to install.sh
- Check for .env, node_modules, old services, etc.
- Direct users to create fresh installation for v4
2025-08-04 08:09:30 +00:00
Pulse Monitor 68e4295de2 test: modify update manager to use private repo for testing 2025-08-04 07:20:17 +00:00
Pulse Monitor eb732e7d90 Add LXC/manual installation support
- Add comprehensive install.sh script for LXC and manual installations
- Add systemd service file (pulse.service)
- Add build-release.sh for creating release archives
- Support for multiple architectures (amd64, arm64, armv7)
- Automatic dependency installation (Go, Node.js)
- User creation and permission management
- Update/reinstall/remove functionality
- Matches the installation experience of the original Pulse
2025-08-03 20:38:57 +00:00