Commit graph

117 commits

Author SHA1 Message Date
rcourtman
39ba5b60ce Document new Docker public URL guidance and bundled disk helper 2025-09-29 16:47:06 +00:00
rcourtman
9852ef9047 Align dev ports and improve auto-register UX 2025-09-29 15:05:59 +00:00
rcourtman
98913040c5 docs: clarify optional OIDC 2025-09-29 10:14:20 +00:00
rcourtman
89809e64de docs: expand OIDC guidance 2025-09-29 10:10:25 +00:00
rcourtman
6f4771ae2d feat: unify styling and improve cluster detection 2025-09-28 18:46:52 +00:00
Pulse Monitor
12ab1b0c6f docs: document --main install option for testing latest fixes
- Added to README.md Quick Start section
- Added comprehensive docs in INSTALL.md
- Explains when and why to use --main option
- Notes build dependencies requirement
2025-09-11 15:19:57 +00:00
Pulse Monitor
5325ef481e fix: comprehensive VM disk usage reporting improvements (addresses #414, #416, #348, #367, #425)
- Always query guest agent for running VMs (cluster/resources API always returns 0)
- Show allocated disk size when guest agent unavailable (instead of misleading 0%)
- Fix duplicate mount point counting issue (#425)
- Add comprehensive logging for guest agent queries
- Include diagnostic script for troubleshooting VM disk issues
- Update both monitor.go and monitor_optimized.go for consistency
2025-09-06 19:52:11 +00:00
Pulse Monitor
5615662d9e feat: complete ZFS pool monitoring implementation (addresses #423)
- Implement proper API integration with list and detail endpoints
- Add ZFS pool and device status conversion
- Enable by default with PULSE_DISABLE_ZFS_MONITORING opt-out
- Test with real Proxmox nodes and verify functionality
- Add comprehensive error handling and logging
- Document feature configuration and requirements

The feature now properly:
- Fetches ZFS pool status from Proxmox API
- Detects degraded/faulted pools and devices
- Tracks read/write/checksum errors
- Generates appropriate alerts
- Displays issues in the Storage tab UI

Tested and verified working with real Proxmox clusters.
2025-09-06 10:56:17 +00:00
Pulse Monitor
5681a0fbd5 docs: update documentation to reflect automatic public URL detection 2025-09-04 18:02:21 +00:00
Pulse Monitor
8d2fc93bce docs: enhance PULSE_PUBLIC_URL documentation for webhook notifications 2025-09-04 17:49:37 +00:00
Pulse Monitor
2c3b45e7f8 docs: add PULSE_PUBLIC_URL documentation
- Added to CONFIGURATION.md environment variables section
- Added to WEBHOOKS.md for Gotify and ntfy services
- Added to DOCKER.md environment variables reference and compose example
- Explains how to configure the full Pulse URL for webhook notification links
2025-09-04 12:15:55 +00:00
Pulse Monitor
79d3f1617d docs: remove time references from password recovery sections 2025-09-04 10:34:16 +00:00
Pulse Monitor
23bf4b1265 docs: simplify password recovery stance - just start fresh
- Removed all complex recovery mechanisms from documentation
- Clear stance: forgotten password = start fresh (takes 2 minutes)
- No recovery mechanisms = no security vulnerabilities
- Pulse's simplicity is a feature, not a bug
- Updated both TROUBLESHOOTING.md and SECURITY.md
- Addresses GitHub discussion #413 with security-first approach
2025-09-04 10:31:42 +00:00
Pulse Monitor
fbad442f5c docs: improve password recovery documentation with secure methods
- Removed overly convenient password reset script (security concern)
- Documented existing secure recovery token system
- Added proper security warnings and considerations
- Three-tier recovery approach: tokens (secure), recovery mode (localhost), manual (last resort)
- Emphasizes security best practices and password manager usage
- Addresses GitHub discussion #413 with security-conscious approach
2025-09-04 10:16:30 +00:00
Pulse Monitor
2d699ca46d feat: add password reset script and comprehensive documentation
- Created /opt/pulse/scripts/reset-password.sh for easy password recovery
- Script supports: reset password, set new username/password, disable auth, check status
- Added comprehensive password reset section to troubleshooting docs
- Covers all deployment types: native, Docker, ProxmoxVE LXC
- Addresses GitHub discussion #413 about password recovery
2025-09-04 10:06:54 +00:00
Pulse Monitor
8bbfa88cfb docs: update webhook documentation with custom headers info
- Added Custom Headers section explaining the new UI feature
- Updated ntfy instructions with security note about topic names
- Added common header examples table for authentication
- Clarified how to add Bearer tokens and API keys
2025-09-03 16:44:34 +00:00
Pulse Monitor
50382a89e5 docs: remove ProxmoxVE Helper Script references
The ProxmoxVE Helper Script is no longer the recommended installation method.
Users should use the official install.sh script instead, which supports
creating LXC containers directly on Proxmox hosts.

For existing users confused about updating (like in discussion #407), they
can use 'pct enter' from the Proxmox host to access their container as root.
2025-09-01 22:59:32 +00:00
Pulse Monitor
15333d6f6c docs: add Gotify and ntfy webhook documentation
- added complete setup instructions for Gotify webhooks
- added complete setup instructions for ntfy webhooks
- updated Telegram docs to reflect simplified template-based setup
- clarified that Pulse sends rich formatted notifications automatically
2025-09-01 22:59:32 +00:00
Pulse Monitor
95d201cfc6 feat: improve VM disk stats handling and documentation
- Add DiskStatusReason field to track why disk stats are unavailable
- Show helpful tooltips in UI explaining specific issues:
  - Proxmox 9 API token limitation (401 on guest agent endpoints)
  - Guest agent not installed/running
  - Special filesystems only (Live ISOs)
  - Permission issues
- Add comprehensive troubleshooting guide (docs/VM_DISK_STATS_TROUBLESHOOTING.md)
- Document that API tokens cannot access guest agent data on PVE 9
- Tested and confirmed: only password/cookie auth works for guest agent on PVE 9
- Update README with quick reference to VM disk stats issue

This addresses issues #348, #367, and #71 by clearly explaining the root cause
(Proxmox API limitation) and providing actionable guidance to users.
2025-09-01 10:16:02 +00:00
Pulse Monitor
84b4c02e4d docs: improve Telegram webhook documentation formatting
- Add proper JSON code block formatting for the template
- Keep all improvements from PR #401 by @rschoell
- Ensure consistent formatting throughout the document
2025-08-31 20:23:02 +00:00
Pulse Monitor
a8180f392b docs: update Telegram webhook configuration instructions (addresses #305)
- Remove chat_id from URL (should be in JSON payload)
- Add requirement to select 'Telegram Bot' service type
- Include custom payload template example
- Clarify that chat_id goes in the JSON body, not URL params
2025-08-31 20:22:37 +00:00
surfer2100
6a53799fab Update WEBHOOKS.md
Relevant to #305
2025-08-31 21:26:58 +02:00
Pulse Monitor
87ef949e1b feat: improve screenshots and mobile UI responsiveness
- Update screenshot tool to use MacBook Air resolution (2560x1600)
- Remove empty side borders from screenshots
- Use mock data for all screenshots for privacy
- Fix mobile alert buttons overflowing viewport
- Exempt localhost from API rate limiting for better dev experience
- Update documentation to showcase all features with screenshots
- Reorganize README visual tour into feature sections
2025-08-30 12:25:53 +00:00
Pulse Monitor
9c9da31bf2 feat: improve documentation with high-quality screenshots and mock alert history
- Add high-quality screenshots with 3x device scale factor for crisp text
- Implement mock alert history generator spanning 90 days
- Update documentation with detailed screenshot descriptions
- Add visual tour section to README with key screenshots
- Fix mock mode to properly separate from production data
- Clean up screenshot script to use actual mock data instead of DOM injection
- Enhance FAQ and webhooks docs with relevant screenshots
2025-08-30 11:13:41 +00:00
Pulse Monitor
b34f7eef09 docs: add account lockout and recovery documentation
- Document lockout behavior (5 attempts, 15 minute duration)
- Add recovery instructions in SECURITY.md
- Document new API endpoints (/api/login, /api/security/reset-lockout)
- Update troubleshooting guide with lockout recovery steps
2025-08-27 22:02:51 +00:00
Pulse Monitor
eabe78dab1 docs: add comprehensive automatic update documentation
- Document auto-update feature in README
- Add detailed setup instructions in INSTALL.md
- Include auto-update configuration in CONFIGURATION.md
- Explain systemd timer behavior and controls
- Note that Docker doesn't support auto-updates
2025-08-27 15:43:03 +00:00
Pulse Monitor
da745b0d88 fix: correct VM disk monitoring documentation for PVE 9
TESTED AND CONFIRMED: API tokens CAN access guest agent data on PVE 9!
- Created test tokens and verified they work
- Guest agent API returns proper disk usage data
- The cluster/resources endpoint shows disk=0 but that's not what Pulse uses
- Pulse correctly fetches data via /nodes/{node}/qemu/{vmid}/agent/get-fsinfo

The misinformation about PVE 9 not working was completely wrong. It does work when properly configured with PVEAuditor role which includes VM.GuestAgent.Audit permission.
2025-08-25 15:25:10 +00:00
Pulse Monitor
35cecd475a docs: provide honest assessment of PVE 9 VM disk monitoring
Stop making definitive claims about what works or doesn't work. The reality:
- Some users (like you) have it working fine in cluster configs
- Others report 0% disk usage
- The exact conditions that make it work are unclear
- Results vary between different setups

Updated all docs and messages to reflect this uncertainty rather than making false claims about non-existent workarounds or absolute limitations.
2025-08-25 15:20:34 +00:00
Pulse Monitor
6f86ad5b7f fix: correct the misinformation about PVE 9 VM disk monitoring
Previous advice was completely wrong. The facts:
- VM.Monitor permission doesn't exist in PVE 9 (was removed)
- It was replaced with VM.GuestAgent.Audit
- But even with correct permissions, API tokens CANNOT access guest agent data on PVE 9
- This is Proxmox bug #1373 with NO working workaround for API tokens
- Users must accept 0% VM disk usage on PVE 9 until Proxmox fixes it upstream

Updated all documentation and error messages to reflect this reality instead of giving false hope about non-existent workarounds.
2025-08-25 15:04:41 +00:00
Pulse Monitor
6fd96d7bed fix: remove misleading root@pam authentication advice
The root@pam suggestion doesn't actually work since it requires the Linux system root password, not a Proxmox-specific password. Most users don't know or have disabled their Linux root password for security.

Updated all documentation and error messages to correctly advise users to grant VM.Monitor permission to their API token user instead.
2025-08-25 14:59:37 +00:00
Pulse Monitor
4f73d368ef docs: add troubleshooting for root@pam users still seeing 0% disk usage 2025-08-25 09:14:21 +00:00
Pulse Monitor
9dea067521 improve: add better diagnostics for guest agent issues
- Add verification steps for qemu-guest-agent service status
- Clarify that the service is socket-activated (not systemctl enable)
- Add diagnostic commands users can run to verify agent is working
- Update FAQ with correct troubleshooting steps for agent issues

This helps users like @RLSinRFV who were trying to enable the service
when it's actually socket-activated and should start automatically.
2025-08-25 09:12:25 +00:00
Pulse Monitor
04809119d7 fix: correct VM disk monitoring guidance for PVE 8 users
The real issue for PVE 8 users seeing 0% disk usage:
- Users who added nodes BEFORE v4.7 don't have VM.Monitor permission
- The setup script always created tokens with privsep=0, so that wasn't the issue
- Solution: Re-run the setup script or manually add VM.Monitor permission

Updated error messages and documentation to reflect the actual cause
and provide the correct fix for users experiencing this issue.
2025-08-25 09:07:22 +00:00
Pulse Monitor
4675b5bf92 improve: clearer VM disk monitoring error messages (addresses #348, #344)
- Add detailed logging when VM disk monitoring fails due to permissions
- Explain Proxmox 9 limitation: API tokens cannot access guest agent data (PVE bug #1373)
- Explain Proxmox 8 requirements: VM.Monitor permission and privsep=0 for tokens
- Update setup script to show appropriate warnings for each PVE version
- Update FAQ with troubleshooting steps for 0% disk usage on VMs
- Log messages now clearly indicate workarounds for each scenario

The core issue: Proxmox 9 removed VM.Monitor permission and the replacement
permissions don't allow API tokens to access guest agent filesystem info.
This is a Proxmox upstream bug that affects their own web UI as well.

For users experiencing this issue:
- PVE 9: Use root@pam credentials or wait for Proxmox to fix upstream
- PVE 8: Ensure token has VM.Monitor and privsep=0
- All versions: QEMU guest agent must be installed in VMs
2025-08-25 09:00:40 +00:00
Pulse Monitor
98cad9cf50 docs: remove unnecessary sudo from install commands
- LXC containers run as root and don't have sudo installed
- Updated all documentation to remove sudo references
- Updated frontend UI to show correct install command
- Keep sudo mention only in troubleshooting for edge cases
2025-08-24 22:56:21 +00:00
Pulse Monitor
3f8f1f7899 refactor: simplify setup flow by removing setup code prompts
Replaced the two-step setup code process with a simpler token-in-URL approach:
- Auth token is now embedded directly in the setup URL
- No more prompting users for setup codes
- Same security level with better UX
- Backwards compatible with old setupCode field

The new flow generates a command like:
curl -sSL "http://pulse/api/setup-script?...&auth_token=TOKEN" | bash

This makes it much easier for users, especially in Proxmox shell where
interactive prompts can be problematic.
2025-08-23 22:16:01 +00:00
Pulse Monitor
0071a9c02a docs: update configuration guide for encrypted webhooks 2025-08-22 10:22:07 +00:00
Pulse Monitor
a8b7d2748e feat: encrypt webhook data at rest for improved security
Webhooks now stored encrypted (webhooks.enc) instead of plain text:
- Automatic migration from webhooks.json to webhooks.enc
- Uses same AES-256-GCM encryption as nodes and email configs
- Original file backed up as webhooks.json.backup
- Protects sensitive webhook URLs and authentication headers

This addresses the security concern where webhook URLs containing API tokens
(like Telegram bot tokens) were stored in plain text.
2025-08-22 10:19:42 +00:00
Pulse Monitor
49c6507a72 feat: add proxy authentication support
Implements header-based proxy authentication for SSO integration with
Authentik, Authelia, and other authentication proxies.

- Add CheckProxyAuth function to validate proxy headers
- Support for username and role-based access control
- Frontend integration with logout URL support
- Comprehensive documentation with examples
- Backwards compatible - no breaking changes

Addresses #327

Configuration via environment variables:
- PROXY_AUTH_SECRET: Shared secret for validation
- PROXY_AUTH_USER_HEADER: Header containing username
- PROXY_AUTH_ROLE_HEADER: Header containing roles/groups
- PROXY_AUTH_LOGOUT_URL: SSO logout endpoint
2025-08-22 09:47:18 +00:00
Pulse Monitor
bd9ebcada7 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
35e3f986f4 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
4a2e7b4547 feat: add toggle to disable network discovery
Addresses #343 - users can now disable Proxmox/PBS server discovery through:
- UI toggle in Settings > System > Network Settings
- Environment variable DISCOVERY_ENABLED=false
- system.json configuration

Discovery runs by default but can be completely disabled for environments where automatic scanning causes issues (e.g., shared hosting networks).
2025-08-21 21:13:29 +00:00
Pulse Monitor
f7840aae47 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
9108650352 docs: comprehensive update to API documentation
- Fixed HTTP method discrepancies (POST to PUT for /api/config/system)
- Added missing security endpoints (status, change-password, quick-setup)
- Added missing test endpoints (test-config, node-specific test)
- Added system settings and UI settings documentation
- Added /api/config endpoint for getting current configuration
- Added /simple-stats lightweight monitoring endpoint
- Added /api/test-notification for WebSocket testing
- Removed unimplemented threshold endpoints
- Corrected email update method from POST to PUT
- Added comprehensive security configuration section
- Updated API token management to reflect new simplified endpoint
2025-08-21 16:01:52 +00:00
Pulse Monitor
ee15d3b4f0 docs: update API documentation for secure setup code system
- Documented the new /api/setup-script-url endpoint
- Explained the one-time setup code security features
- Updated auto-register endpoint documentation
- Added security features section highlighting the improvements
- Included environment variable option for automation
2025-08-21 14:31:29 +00:00
Pulse Monitor
d58d52b238 feat: add DISABLE_AUTH environment variable for proxy authentication
- Added DISABLE_AUTH env var to completely bypass authentication
- Useful for reverse proxy setups (Authentik, Authelia, etc.)
- Updated documentation in CONFIGURATION.md and REVERSE_PROXY.md
- Fixed security tests to handle auth disabled state
2025-08-20 08:43:20 +00:00
Pulse Monitor
70d043fb96 feat: smart network discovery for Docker environments
- Auto-detect Docker environment and scan common home/office subnets
- Scans 192.168.1.0/24, 192.168.0.0/24, 10.0.0.0/24, 192.168.88.0/24, 172.16.0.0/24
- Removes friction - nodes are discovered automatically without configuration
- DISCOVERY_SUBNET env var now optional (only for non-standard networks)
- Update documentation to reflect automatic discovery

This makes the first-run experience much smoother - users see their
Proxmox nodes immediately without having to figure out subnet configuration.
2025-08-19 15:32:26 +00:00
Pulse Monitor
7445cf7055 feat: auto-hash plain text credentials from environment variables
- Automatically hash plain text API tokens (SHA3-256) and passwords (bcrypt) when loaded from env vars
- Remove unnecessary PULSE_SETUP_TOKEN feature in favor of simpler env var approach
- Remove HandleInitialSetup endpoint - not needed with env var configuration
- Update authentication to always use hashed comparisons (no plain text warnings)
- Update documentation to clearly explain auto-hashing capability
- Maintain backward compatibility with pre-hashed credentials

This makes Pulse secure by default while keeping deployment simple - users can
provide plain text credentials via environment variables and Pulse automatically
hashes them for security.
2025-08-19 14:58:01 +00:00
Pulse Monitor
4b2c2e0043 docs: update configuration documentation for env var precedence
- Clarify that env vars have highest priority and override system.json
- Document UI warning behavior when env vars override settings
- Add FAQ entry for disabled UI fields
- Fix incorrect priority order in CONFIGURATION.md
- Add clear warnings about env var override behavior

This ensures users understand why UI changes might not work when
environment variables are set, and how to resolve the issue.
2025-08-19 09:22:05 +00:00
Pulse Monitor
362ace960d docs: clarify environment variable precedence behavior
- Add clear warnings that env vars override UI/system.json settings
- Update log messages to indicate when env vars are overriding values
- Document standard container practice: env vars have highest precedence
- Users must remove env vars to allow UI configuration to take effect

This prevents confusion when UI changes don't work due to env var overrides.
2025-08-19 08:50:36 +00:00