Commit Graph

43 Commits

Author SHA1 Message Date
Pulse Monitor fc55700530 feat: auto-select update in non-interactive container mode
- Detect non-TTY environments when running with --in-container
- Automatically select appropriate update based on configured channel
- Prevents hanging on menu prompt in ProxmoxVE deployments
2025-08-22 08:55:12 +00:00
Pulse Monitor 7273c00d10 fix: handle unset UPDATE_CHANNEL variable in download_pulse function
Use parameter expansion to prevent 'unbound variable' error when UPDATE_CHANNEL is not set
2025-08-22 08:50:07 +00:00
Pulse Monitor b51dcd7004 feat: show both stable and RC version options in install script menu
- Users now see both stable and RC versions when updating
- Menu dynamically adjusts based on available versions
- Users can choose which version to install regardless of their update channel setting
- Addresses confusion about automatic RC updates
2025-08-22 08:39:11 +00:00
Pulse Monitor b2986ad6b7 fix: initialize UPDATE_CHANNEL variable before use in install script
addresses #345 - script was failing with 'unbound variable' error when UPDATE_CHANNEL was used before being initialized
2025-08-22 08:33:07 +00:00
Pulse Monitor c880b6552f fix: improve interactive detection for curl piped installations
Previous fix wasn't working properly - the menu showed but couldn't read input.
Now properly detects if we can write to /dev/tty to determine if interaction
is possible, even when stdin is piped from curl.
2025-08-21 22:44:42 +00:00
Pulse Monitor 9ff8eb1fc7 fix: allow interactive mode when using curl | bash for Proxmox installations
The script was detecting piped input and automatically going into non-interactive mode,
preventing users from choosing between Quick and Advanced installation modes.

Now checks if /dev/tty is available even when stdin is piped, allowing interaction
through the terminal for curl-based installations while still supporting truly
non-interactive environments (like automation scripts without any TTY).
2025-08-21 22:41:02 +00:00
Pulse Monitor b34c499327 fix: handle piped script execution for Proxmox container installs
When script is piped through curl, download a fresh copy to push
to the container instead of trying to use $0 which would be 'bash'
2025-08-21 22:26:48 +00:00
Pulse Monitor e8c6fd0b61 fix: simplify non-interactive detection for curl installations
Use simple 'test -t 0' to detect when script is piped through curl
Also use portable test command instead of bash [[ ]] syntax
2025-08-21 22:24:08 +00:00
Pulse Monitor a6db7c17ad fix: auto-select Quick mode for non-interactive Proxmox installations
When running via curl pipe, automatically use Quick installation mode
instead of waiting for input that will never come
2025-08-21 22:20:31 +00:00
Pulse Monitor 4cf25a9971 fix: handle non-TTY environments in install script for Proxmox installations
- Add safe_read function to handle both TTY and non-TTY input
- Fix --in-container mode to skip prompts when no TTY available
- Allows installation via piped curl command on Proxmox hosts
2025-08-21 22:19:23 +00:00
Pulse Monitor 15eb074f1f feat: add port configuration prompt to installer
- Install script now prompts for custom port (default: 7655)
- Can skip prompt with FRONTEND_PORT environment variable
- Fixed incorrect port configuration instructions in UI
- Updated documentation to reflect new installation options
- Fixed FAQ.md references to pulse-backend (should be pulse)

addresses #110
2025-08-21 22:06:18 +00:00
Pulse Monitor 2ee600348a improve: clarify configuration file separation and port setup
- Added comprehensive PORT_CONFIGURATION.md guide
- Updated CONFIGURATION.md to clarify .env is for auth only
- Install script no longer loads .env for environment variables
- Documented proper port configuration methods (systemd, system.json)
- Added port config guide to README documentation section

addresses #110 - helps users understand where to configure ports
2025-08-21 21:29:12 +00:00
Pulse Monitor ad00943717 feat: major installer improvements for Proxmox environments
- Auto-detects Proxmox VE hosts and creates LXC containers
- Quick mode with sensible defaults (1GB RAM, 4GB disk)
- Advanced mode for full customization
- Automatic cleanup on failure
- Simple 'update' command in containers
- Improved error handling and network detection
- Professional, clean output without verbose noise
- Docker detection to prevent container-in-container
- Removed all references to community scripts

This is now the primary recommended installation method.
2025-08-21 20:43:56 +00:00
Pulse Monitor 740fe36cec feat: add quick and advanced modes for LXC container creation
Users now have two options when creating the LXC container:
1. Quick mode - Uses optimized defaults for production (2GB RAM, 16GB disk, etc)
2. Advanced mode - Full control over all settings like the community script

Advanced mode allows customization of:
- Memory, CPU cores, CPU limits, swap
- Static IP vs DHCP
- DNS servers
- Firewall settings
- Privileged vs unprivileged
- Auto-start on boot
- Startup order

This gives users the best of both worlds - quick setup with good defaults
or full control when needed.
2025-08-21 19:26:31 +00:00
Pulse Monitor 6d332ec4c9 optimize: improve LXC container settings for production use
- Increased default RAM to 2GB (handles 50+ nodes)
- Increased default disk to 16GB (logs and metrics storage)
- Added CPU limit to prevent resource hogging
- Added 512MB swap for memory flexibility
- Enabled firewall on network interface
- Set startup order to 99 (after critical services)
- Configure UTC timezone for consistent logging
- Optimize sysctl settings for monitoring workload
- Added clear documentation of optimizations applied
2025-08-21 19:01:17 +00:00
Pulse Monitor 141970bf02 feat: add automatic LXC container creation for Proxmox hosts
The installer now detects when running on a Proxmox VE host and automatically:
- Creates a new LXC container with user-specified settings
- Installs Pulse inside the container
- Prevents unsafe installation directly on PVE hosts

This eliminates dependency on community scripts while ensuring proper isolation.
2025-08-21 18:43:40 +00:00
Pulse Monitor 835d2bb2a0 fix: remove unnecessary build dependencies from install script
The installer was installing Go and Node.js even for binary installations.
Now it only installs curl and wget which are needed to download the release.
2025-08-21 18:31:04 +00:00
Pulse Monitor 0dfc7538f0 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 9a250fb28d 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 def119fc58 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 32d1007284 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 9665e86df1 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 64cbad8ad0 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 8939d83016 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 eb93cba6fa 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 54506811a2 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 c8c351f9e7 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 ac67642aef 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 535653bb51 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 ccf7967dec 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 d5b6934e27 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