Commit graph

115 commits

Author SHA1 Message Date
Pulse Monitor
efefe4e4e5 docs: generalize documentation guidelines and restore useful encryption details 2025-08-06 21:47:27 +00:00
Pulse Monitor
10843b6735 docs: simplify security documentation to essentials only 2025-08-06 21:44:47 +00:00
Pulse Monitor
a32afed1d5 docs: remove unnecessary checklist and placeholder email from security docs 2025-08-06 21:44:19 +00:00
Pulse Monitor
294f132181 docs: comprehensive security documentation for v4 security features 2025-08-06 21:42:49 +00:00
Pulse Monitor
28f9d9db53 feat: add comprehensive security system for API protection
Security Features Added:
- Secure-by-default configuration export/import with ALLOW_UNPROTECTED_EXPORT environment variable
- Rate limiting (5 attempts/minute) to prevent brute force attacks on sensitive endpoints
- Comprehensive audit logging for all export/import attempts with IP tracking
- Frontend Security tab showing API protection status and configuration guidance
- Frontend now shows when export is blocked and disables buttons appropriately
- Strong passphrase requirement (minimum 12 characters) for exports

Technical Implementation:
- New RateLimiter component with automatic cleanup and middleware support
- Security status API endpoint showing protection state
- Enhanced error messaging with specific guidance for homelab vs production use
- Proper authentication flow with API token validation
- Updated documentation reflecting new security model

Breaking Changes:
- Export/import now requires API_TOKEN unless ALLOW_UNPROTECTED_EXPORT=true is set
- Minimum passphrase length increased from none to 12 characters

Additional Improvements:
- Fixed architecture-specific updates for better cross-platform support
- Removed RC label from UI header
- Updated security documentation with clear setup instructions
2025-08-06 21:39:52 +00:00
Pulse Monitor
9bc050371b fix: Docker persistence actually fixed this time
The ConfigHandlers were calling config.SaveConfig() which uses
globalPersistence initialized at startup with potentially wrong path.
Now handlers use their own persistence instance directly which is
initialized with the correct DataPath.

This was causing Docker configurations to still save to /etc/pulse
even though we thought we fixed it in v4.0.6.

Fixes #253 (for real this time)
2025-08-06 17:14:34 +00:00
Pulse Monitor
9c77f6e7db fix: Docker persistence and Windows VM memory reporting
- Fix Docker persistence bug where config was saved to /etc/pulse instead of /data
- Fix Windows VM memory reporting with balloon drivers
- Add GetVMStatus method to get detailed VM info including balloon memory
- Update diagnostics endpoint to use correct config paths

Fixes #253 (Docker persistence)
Fixes #258 (Windows VM memory reporting)
2025-08-06 16:00:22 +00:00
Pulse Monitor
1210d8efdb feat: add diagnostics UI in settings
- Add 'Run Diagnostics' button in Settings → Diagnostics tab
- Shows connection status for all nodes and PBS instances
- Displays auth method, errors, and system info
- Users can now easily troubleshoot connection issues
2025-08-06 15:32:56 +00:00
Pulse Monitor
6609c7a962 feat: add diagnostics endpoint and improve error handling
- Add /api/diagnostics endpoint for detailed troubleshooting info
- Shows connection status, auth methods, errors for each node
- Auto-fix PBS hosts missing https:// prefix instead of crashing
- Skip invalid PBS instances instead of failing to start
- Fixes issue #251 where invalid PBS config crashed the service
2025-08-06 15:24:06 +00:00
Pulse Monitor
8ab544ef81 cleanup: remove temporary helper script
No longer needed now that official community script supports Pulse v4
2025-08-06 12:45:04 +00:00
Pulse Monitor
c38329d284 docs: reorder installation methods - community script first
Community script is the easiest option for Proxmox users
2025-08-06 12:43:08 +00:00
Pulse Monitor
c3c04c970e docs: update README with Proxmox community script
The official Proxmox helper script now supports Pulse v4
2025-08-06 12:39:42 +00:00
Pulse Monitor
ad625a9237 chore: bump version to v4.0.5
- Fix version detection for community script installs
- Fix orange uptime highlighting for recent boots
- Fix cpulimit JSON parsing issue
- Improve PVE 9 compatibility
2025-08-06 12:32:31 +00:00
Pulse Monitor
f380f4a717 fix: version detection and display
- Fix hardcoded fallback version (was 4.0.3, now 4.0.4)
- Look for VERSION file in multiple locations (/opt/pulse/VERSION)
- Fixes version display when installed via community script
2025-08-06 12:29:41 +00:00
Pulse Monitor
2ba5e91fcd fix: UI and backend fixes
- Add orange highlighting for recently booted containers (< 1 hour)
- Handle cpulimit causing JSON unmarshaling error with FlexInt type
- Improve PVE 9 compatibility in temporary helper script
- Fixes issues #251 and #256
2025-08-06 10:44:35 +00:00
Pulse Monitor
de85b861be fix: improve PVE 9 compatibility in temporary helper script
- Remove --password parameter that may cause issues on PVE 9
- Add explicit error handling for container creation
- Separate container creation and start steps
- Add proper wait loop for container startup
- Better error messages if IP detection fails
2025-08-06 08:20:56 +00:00
Pulse Monitor
5cef2fb4a9 chore: remove RELEASE_CHECKLIST.md from repo and re-ignore it
- This is an internal document, not for public repo
- Re-added to .gitignore
2025-08-06 07:33:22 +00:00
Pulse Monitor
92f83d23a5 docs: add consistent release notes template and track RELEASE_CHECKLIST.md
- Standardized release notes format for all releases
- Removed emoji from headers (keep it professional)
- Only mention specific Docker version tag (not all variants)
- Clear sections for Features, Fixes, Improvements, Breaking Changes
- Consistent installation instructions format
- Remove RELEASE_CHECKLIST.md from gitignore so it's tracked
2025-08-06 07:32:59 +00:00
Pulse Monitor
4711b6f81c docs: clarify testing means manual verification by Claude Code 2025-08-06 07:25:15 +00:00
Pulse Monitor
903d4acec1 chore: bump version to v4.0.4 2025-08-06 07:10:22 +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
e72b698a13 fix: restore default config path to /etc/pulse
The default was accidentally changed to /var/lib/pulse which broke
existing installations. Docker uses PULSE_DATA_DIR=/data so is unaffected.
2025-08-05 21:49:19 +00:00
Pulse Monitor
1109276fd3 feat: add encrypted config export/import for automation
- Added secure config export/import with passphrase-based encryption
- CLI commands: pulse config export/import with AES-256-GCM encryption
- Auto-import on Docker startup via PULSE_INIT_CONFIG_FILE/DATA env vars
- API endpoints /api/config/export and /api/config/import (require API_TOKEN)
- Configs remain encrypted throughout export/import process
- Perfect for GitOps, CI/CD, and infrastructure as code workflows

This allows users to configure Pulse once via UI, export the encrypted
config, and deploy it automatically to multiple instances without
manual reconfiguration.

Addresses #249 - Config management for automation enthusiasts
2025-08-05 21:45:25 +00:00
Pulse Monitor
ebb512c023 fix: webhook persistence using wrong directory
ConfigPersistence was initialized with empty string instead of cfg.DataPath,
causing webhooks to save to /etc/pulse instead of PULSE_DATA_DIR.
This affected Docker deployments where /data is the persistent volume.

Fixes #249
2025-08-05 21:37:56 +00:00
Pulse Monitor
eeefee1d72 chore: bump version to v4.0.3 2025-08-05 21:15:16 +00:00
Pulse Monitor
68a75019ee fix: include VERSION file in Docker final stage
- VERSION file was copied to build stage but not to final image
- This caused version API to fall back to hardcoded value
2025-08-05 21:13:40 +00:00
Pulse Monitor
1177412fdf fix: Docker persistence and version display issues
- Fixed VERSION file not being included in Docker image
- Fixed config persistence using wrong directory in Docker (/etc/pulse instead of /data)
- Config now correctly uses PULSE_DATA_DIR environment variable
2025-08-05 21:07:29 +00:00
Pulse Monitor
c8d22e9bb1 docs: add explanation for why config export/import is not supported
- Explain security reasons for not allowing credential export
- Add best practices for configuration management
- Clarify that this is intentional, not a missing feature
2025-08-05 20:46:15 +00:00
Pulse Monitor
c2c0dabf9d chore: remove unnecessary Docker install script 2025-08-05 20:40:01 +00:00
Pulse Monitor
78945dce16 chore: bump version to v4.0.2 2025-08-05 20:34:45 +00:00
Pulse Monitor
8d8ae65028 fix: correct Docker compose port mapping and remove unnecessary config volume (#249)
- Fix port mapping from 7655:3000 to 7655:7655
- Fix healthcheck to use correct port 7655
- Remove pulse_config volume as it's not needed in v4
- All configuration is stored in /data directory
2025-08-05 20:29:48 +00:00
Pulse Monitor
1ffbee5243 fix: improve PBS token authentication handling (#250)
- Parse user@realm from token name if provided in full format
- Better handle various token input formats
- Require user info for token auth (either in token name or user field)
- Fix realm defaulting logic for different auth types
2025-08-05 20:29:07 +00:00
Pulse Monitor
e25a0993a5 fix: update fallback version to 4.0.1 to fix Docker tag issue (#253) 2025-08-05 20:20:20 +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
868e984353 chore: clean up temporary documentation files
- Remove temporary action items, issue responses, and Docker Hub description
- Move PROXMOX_HELPER_ISSUE.md to docs/ folder
- Add TODO comment to temporary-helper.sh for future removal
- Keep only essential files in root directory
2025-08-05 15:16:42 +00:00
Pulse Monitor
9e720eafd1 docs: add Docker Hub description with migration warnings 2025-08-05 15:13:46 +00:00
Pulse Monitor
dfb224337f feat: add temporary helper script for Proxmox installations
- Creates proper v4 installation while official script is being updated
- Addresses issues #251 and #252
- Provides easy installation path for users
2025-08-05 14:46:21 +00:00
Pulse Monitor
78c5fef966 docs: update helper script status and add issue response templates
- Note that PR for Proxmox helper script has been submitted
- Create response templates for all open issues
- Update README to reflect fix is in progress
2025-08-05 09:03:26 +00:00
Pulse Monitor
9e9a83416c docs: add v3 to v4 migration guide and fix installation instructions
- Add comprehensive migration guide (docs/MIGRATION_V3_TO_V4.md)
- Document why Proxmox helper script is broken (configured for v3)
- Update README with migration warning and corrected install options
- Add temporary note about helper script issues (refs #251, #252)
- Provide clear guidance for users experiencing fresh install failures
2025-08-05 08:49:30 +00:00
Pulse Monitor
e8172938ec chore: bump version to v4.0.1 2025-08-05 07:03:51 +00:00
Pulse Monitor
02c5319099 fix: Docker container data persistence issue (#249)
- Add GetDataDir() function to respect PULSE_DATA_DIR environment variable
- Update all hardcoded /var/lib/pulse paths to use configurable data directory
- Fix circular import by moving GetDataDir to utils package
- Ensures Docker containers can properly persist configuration and alerts
2025-08-05 07:01:11 +00:00
Pulse Monitor
a4bb3c461f docs: remove unnecessary API documentation from README
- API endpoints are an implementation detail not needed by most users
- Keeps README focused on installation and usage
- Developers can find API info in the code or create separate API docs if needed
2025-08-05 06:39:45 +00:00
Pulse Monitor
15a7234173 chore: clean up repository structure
- Remove temp/ directory with ProxmoxVE scripts
- Remove old Node.js server/ directory from v3
- Remove temporary release notes file
- Remove temporary Docker build script
- Remove temporary screenshot tool config
- Remove empty bin/ directories
- Keep only necessary project files
2025-08-04 21:40:25 +00:00
Pulse Monitor
afe845182b chore: update screenshots and add dark mode screenshot script 2025-08-04 21:38:11 +00:00
Pulse Monitor
20e8263f90 fix: regenerate all screenshots in dark mode
- Updated screenshot script with improved dark mode detection and forcing
- Regenerated all 8 documentation screenshots in dark mode
- Screenshots now properly show the dark theme interface
- Fixed theme switching logic to ensure consistent dark mode capture
2025-08-04 21:33:39 +00:00
Pulse Monitor
ab60385a4d chore: remove RELEASE_CHECKLIST.md from repository
This file contains internal release procedures and should not be public
2025-08-04 21:33:26 +00:00
Pulse Monitor
c36b6779e0 chore: remove CLAUDE.md from repository
This file contains development-specific information and should not be in the public repository
2025-08-04 21:33:21 +00:00
Pulse Monitor
c1c1c6a7ba fix(security): update vite to 6.3.5 to fix esbuild vulnerability
- Fixes moderate security vulnerability in esbuild (GHSA-67mh-4wv8-2f99)
- Updates vite from 5.4.19 to 6.3.5 which includes esbuild 0.25.0
- esbuild vulnerability allowed any website to send requests to dev server
- Frontend build tested and working correctly with new version
2025-08-04 21:30:54 +00:00
Pulse Monitor
7256ffe9e2 feat: add screenshot generation tool and documentation images
- Created comprehensive screenshot tool using Playwright
- Generated all 8 screenshots referenced in documentation:
  - Dashboard, Storage, Backups, Alerts views
  - Alert History, Settings, Dark Mode examples
  - Mobile responsive view
- Added three screenshot scripts:
  - take-screenshots.js: Full-featured with browser chrome
  - take-screenshots-simple.js: Basic screenshot capture
  - take-all-screenshots.js: Comprehensive capture for all docs
- Fixes broken screenshot links in README and SCREENSHOTS.md
2025-08-04 21:30:41 +00:00