Commit Graph

963 Commits

Author SHA1 Message Date
courtmanr@gmail.com
fd39196166 refactor: finalize documentation overhaul
- Refactor specialized docs for conciseness and clarity
- Rename files to UPPER_CASE.md convention
- Verify accuracy against codebase
- Fix broken links
2025-11-25 00:45:20 +00:00
courtmanr@gmail.com
8464a69abe Refactor remaining docs and standardize naming 2025-11-25 00:28:33 +00:00
courtmanr@gmail.com
ff18ed4064 Refactor auth and monitoring docs to be concise 2025-11-25 00:26:00 +00:00
courtmanr@gmail.com
21a489cbec Refactor integration docs (K8s, Proxy, Webhooks) to be concise 2025-11-25 00:19:34 +00:00
courtmanr@gmail.com
a8378b9e0c Refactor agent and troubleshooting docs to be modern and concise 2025-11-25 00:18:10 +00:00
courtmanr@gmail.com
70913d599d Remove redundant docs (DOCKER_HUB_README, PORT_CONFIGURATION) and update index 2025-11-25 00:16:29 +00:00
courtmanr@gmail.com
d3d06bb32c Refactor FAQ and API docs to be concise and modern 2025-11-25 00:14:22 +00:00
courtmanr@gmail.com
2e62dc15b3 Refactor core docs (INSTALL, CONFIGURATION, DOCKER) to be modern and concise 2025-11-25 00:13:07 +00:00
courtmanr@gmail.com
b6728e2114 Polish documentation: fix links, use local images, and beautify docs index 2025-11-25 00:11:30 +00:00
courtmanr@gmail.com
5d1e352d49 Refactor README.md to be more concise and modern 2025-11-25 00:07:33 +00:00
courtmanr@gmail.com
1f16bf8c7c chore: optimize PNG images and add .gitattributes
- Optimize all documentation images with optipng -o7
  • 01-dashboard.png: 497KB → 372KB (25% reduction)
  • 02-storage.png: 408KB → 307KB (25% reduction)
  • 03-backups.png: 343KB → 261KB (24% reduction)
  • 04-alerts.png: 152KB → 118KB (22% reduction)
  • 05-alert-history.png: 324KB → 245KB (24% reduction)
  • 06-settings.png: 189KB → 146KB (23% reduction)
  • 08-mobile.png: 116KB → 85KB (27% reduction)
  Total savings: 2.0MB → 1.5MB (500KB saved, 25% reduction)

- Add .gitattributes file for proper binary file handling
  • Mark binary files (images, fonts, etc.) to skip diff
  • Mark lockfiles to skip diff generation
  • Enforce LF line endings for text files
2025-11-24 23:44:55 +00:00
courtmanr@gmail.com
a88d4f644f chore: remove mcp-server directory
Remove MCP (Model Context Protocol) server integration.
This was an AI assistant tool that doesn't belong in the main repository.
2025-11-24 23:13:42 +00:00
courtmanr@gmail.com
193ef979ad chore: remove unnecessary development files and docs
- Remove CLEANUP_TODO.md and MIGRATION_SCAFFOLDING.md (internal notes)
- Remove temporary scripts: copy_and_run.sh, work.sh
- Remove AI assistant utility scripts: backup-claude-md.sh, codex-router.sh

These files were used during development but don't belong in the repository.
2025-11-24 23:09:22 +00:00
courtmanr@gmail.com
c91add36d2 fix: filter out qdevice from cluster node discovery 2025-11-24 22:54:58 +00:00
courtmanr@gmail.com
e9665cb1cd Fix: Prevent unnecessary config reloads by checking file content hash 2025-11-24 22:42:24 +00:00
rcourtman
9691a104c9 Merge pull request #752 from olagrasli/patch-1
Update install-docker-agent.sh to handle log_error and calculated checksum new line
2025-11-24 22:40:25 +00:00
olagrasli
9e18986558 Update install-docker-agent.sh to handle log_error and calculated checksum containing linebreak
Added missing function log_error
Updated checksum check to handle \r at the end of calculated_checksum
2025-11-24 21:09:44 +01:00
courtmanr@gmail.com
82ba508b59 chore: remove outdated docs, update cleanup script and release workflow 2025-11-24 19:14:54 +00:00
courtmanr@gmail.com
450081a8b0 Fix workflow name in trigger-release.sh helm-chart-4.32.7 v4.32.7 2025-11-24 18:10:13 +00:00
courtmanr@gmail.com
224756a5c2 Bump version to 4.32.7 2025-11-24 18:06:14 +00:00
courtmanr@gmail.com
cfc4ccf14e Fix: Allow double slashes in install script URLs 2025-11-24 17:58:00 +00:00
courtmanr@gmail.com
f347dedcdd Add PULSE_AUTH_HIDE_LOCAL_LOGIN option to hide password form
Implements #750 - allows hiding the username/password login form when
using OIDC SSO to avoid user confusion, while maintaining security.

- Added HideLocalLogin config option (env: PULSE_AUTH_HIDE_LOCAL_LOGIN)
- Exposed hideLocalLogin in /api/security/status endpoint
- Updated Login.tsx to conditionally hide local login form
- Added escape hatch via ?show_local=true URL parameter

This approach avoids the security and upgrade issues that led to
DISABLE_AUTH being removed (see #707, #678), while solving the UX
problem of users being confused by multiple login options.
2025-11-24 17:40:43 +00:00
courtmanr@gmail.com
65852e8b4a Fix #735: Allow HEAD requests for download endpoints and fix routing
- Allow HEAD requests in addition to GET for all download handlers
  (install scripts, binaries, checksums) to prevent 405 errors
- Add /uninstall-host-agent.sh to special routes in ServeHTTP
- Add test coverage for HEAD request handling
- Resolves 'method not allowed' errors during agent installation
2025-11-24 15:16:14 +00:00
courtmanr@gmail.com
4168eb41f8 Fix host agent registration verification issues (#746)
- Change default server listen addresses to empty string (listen on all interfaces including IPv6)
- Add short hostname matching fallback in host lookup API to handle FQDN vs short name mismatches
- Implement retry loop (30s) in both Windows and Linux/macOS installers for registration verification
- Fix lint errors: remove unnecessary fmt.Sprintf and nil checks before len()

This resolves the 'Installer could not yet confirm host registration with Pulse' warning
by addressing timing issues, hostname matching, and network connectivity.
2025-11-24 14:28:09 +00:00
courtmanr@gmail.com
9a86fef1dc Fix dashboard layout on wide screens and remove wasted whitespace #643 2025-11-24 08:09:52 +00:00
courtmanr@gmail.com
a991f7d47d Add host agent checksum route and bump version to 4.32.6
- Add /download/pulse-host-agent.sha256 route to serve checksums
- Fixes 'Checksum not available' warning during host agent installation
- Bump version to 4.32.6

Related to #746
2025-11-24 07:57:17 +00:00
courtmanr@gmail.com
0d4406b91f Add mutex protection for config watcher reloads (re #748)
Introduced sync.RWMutex to protect concurrent access to configuration
fields (AuthUser, AuthPass, APITokens) that are modified by the
ConfigWatcher at runtime.

- Added global config.Mu RWMutex in internal/config/config.go
- Protected config updates in ConfigWatcher.reloadConfig() and reloadAPITokens()
- Protected config reads in CheckAuth and all API token handlers
- Protected Router.SetConfig() during full config reloads

This prevents race conditions when .env file changes trigger config
reloads while authentication handlers are reading the same fields.
2025-11-24 07:45:21 +00:00
courtmanr@gmail.com
072e6a1bf6 Implement status bars for Storage, Backups, and Hosts tabs #744 v4.32.5 2025-11-23 22:53:33 +00:00
courtmanr@gmail.com
d23ab9a7f7 Feat: Add support for Raspberry Pi RP1 ADC temperature sensor (Fixes #745)
- Added 'rp1_adc' to the list of recognized CPU temperature chips
2025-11-23 22:33:16 +00:00
courtmanr@gmail.com
d6addee8b4 Fix: Correct context cancellation in loop (Fixes #727)
- Replaced defer in loop with explicit cancellation to avoid resource leak
- Properly tagged issue #727
2025-11-23 22:28:28 +00:00
courtmanr@gmail.com
78308cbc10 Fix: Prevent single node auth failure from disabling global SSH temperature collection
- Removed global legacySSHDisabled flag that was triggered by any single node auth failure
- Changed disableLegacySSHOnAuthFailure to only log warnings
- Fixed potential context leak in monitor.go
- Updated tests to reflect removal of global disable logic
2025-11-23 22:24:15 +00:00
courtmanr@gmail.com
4640633430 Improve agent update logging and installer warnings (related to #737) 2025-11-23 22:07:37 +00:00
courtmanr@gmail.com
76b4abd9e5 fix: Add dev environment fallback paths for Docker agent downloads
- Add fallback to project root scripts/ directory for install-docker-agent.sh
- Add fallback to project root bin/ directory for pulse-docker-agent binary
- Fixes 404 errors when downloading agent installer and binary in dev mode
- Production paths remain unchanged (/opt/pulse/...)
2025-11-23 16:01:40 +00:00
courtmanr@gmail.com
64a509e3da Fix install-host-agent.sh function order, remove duplicate, and improve dev serving 2025-11-23 12:27:11 +00:00
courtmanr@gmail.com
5f3fd17025 Fix temperature collection regression for cluster nodes. Related to #727 2025-11-23 12:13:57 +00:00
rcourtman
1d39a4b026 Fix: let GitHub API create the tag, don't pre-create it
GitHub's API has a quirk: if you POST to /releases with a tag_name
that already exists as a git tag, it creates an 'untagged' release
instead of attaching to the existing tag.

The fix is to let the API create both tag and release together.
helm-chart-4.32.4 v4.32.4
2025-11-23 09:51:51 +00:00
rcourtman
8c5599db3b Add target_commitish to release API call
Without target_commitish, GitHub creates an untagged release
even when the tag exists.
2025-11-23 09:37:35 +00:00
rcourtman
c50869023d Fix: use GitHub API directly for release creation
gh release create doesn't work properly when the tag already exists -
it creates an 'untagged' release instead of attaching to the existing tag.

Using the API directly with POST to /releases fixes this.
2025-11-23 09:24:04 +00:00
rcourtman
1586f80208 Fix: create git tag explicitly before release
gh release create with --target was still creating untagged releases.
The fix is to create and push the git tag explicitly first, then
create the release which will properly attach to the existing tag.
2025-11-23 09:09:37 +00:00
rcourtman
30da2c8951 Fix release workflow to create tag automatically
The workflow was broken because it expected a tag to exist but the
documented process never created one. This caused gh release create
to fail with 'untagged' releases.

Changes:
- Workflow now creates the tag using --target flag
- Simplified release creation logic (no retry loops needed)
- Removed confusing comment about 'tag already exists'

This fixes the fundamental issue where the workflow and documented
process were out of sync.
2025-11-23 08:55:12 +00:00
courtmanr@gmail.com
9a99abbb66 chore(ci): keep release as draft for manual review 2025-11-23 08:25:37 +00:00
courtmanr@gmail.com
1ae34285c5 fix(sensor-proxy): relax pvecm status parsing to support decimal node IDs
Fixes an issue where pvecm status output using decimal node IDs (e.g. '1' instead of '0x1') caused node discovery to fail. Added test case for this format.
2025-11-23 08:21:58 +00:00
courtmanr@gmail.com
a7bad1056a fix(ci): robustly handle existing and untagged releases in workflow 2025-11-23 08:05:11 +00:00
courtmanr@gmail.com
1d1612de86 Auto-publish release after validation for v4.32.4 2025-11-23 00:21:15 +00:00
courtmanr@gmail.com
ff2dd0bdb0 feat: add degraded status dot to Proxmox and Docker tabs (fixes #744) 2025-11-23 00:10:58 +00:00
courtmanr@gmail.com
ac9384aee4 Fix PBS discovery causing auth failures
Increases confidence score for PBS when receiving 401/403 responses to avoid unnecessary probing of other endpoints that trigger auth failure logs.

Fixes #741
2025-11-23 00:08:54 +00:00
courtmanr@gmail.com
4f28a03c60 Bump version to 4.32.4 2025-11-22 23:57:08 +00:00
courtmanr@gmail.com
85461618fd Fix ZFS storage reporting on TrueNAS SCALE (#718)
- Refactor collector to support mocking
- Fix ZFS detection to support 'fuse.zfs' and case-insensitivity
- Add regression tests for ZFS dataset deduplication
2025-11-22 23:53:39 +00:00
courtmanr@gmail.com
a5fbe52a59 Fix pvecm status parsing for QDevice flags (#738) 2025-11-22 23:44:01 +00:00
courtmanr@gmail.com
83e07969f0 fix: ensure proxmox nodes are displayed even if cluster endpoints are missing
Fixes #727. Previously, if temperature monitoring was enabled and a node wasn't found in ClusterEndpoints, the entire node processing was skipped. This change ensures we only skip temperature collection.
2025-11-22 23:31:30 +00:00