mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-09-11 14:00:29 +00:00
001d7f5f1c
Addresses multiple issues that prevented successful temperature monitoring setup: 1. **Missing log directory (install-sensor-proxy.sh)** - Added LogsDirectory=pulse/sensor-proxy to both systemd service templates - Fixes crash: "open /var/log/pulse/sensor-proxy/audit.log: read-only file system" - Uses systemd's LogsDirectory directive for proper permissions 2. **Invalid pct restart command (install-sensor-proxy.sh:822)** - Changed from `pct restart` (doesn't exist) to `pct stop && sleep 2 && pct start` - Fixes container restart failures during proxy setup 3. **Version compatibility check (config_handlers.go)** - Added const minProxyReadyVersion = "4.24.0" - Setup script now queries /api/version endpoint - Blocks proxy setup on Pulse < v4.24.0 with clear upgrade message - Prevents users from attempting proxy setup on incompatible versions 4. **Proxy service health validation (config_handlers.go)** - Verifies pulse-sensor-proxy service is actually running - Checks socket exists at /run/pulse-sensor-proxy/pulse-sensor-proxy.sock - Shows journalctl command for troubleshooting on failure - Sets TEMP_MONITORING_AVAILABLE=false to skip remaining steps 5. **Interactive LXC restart prompt (config_handlers.go)** - Replaced passive "please restart" message with interactive prompt - Default action is "yes" for easy acceptance - Actually executes pct stop/start on confirmation - Handles non-interactive environments gracefully 6. **Post-restart socket verification (config_handlers.go)** - Validates socket is accessible inside container after restart - Provides clear error if mount didn't work - Prevents claiming success when setup is incomplete All changes tested with fresh LXC installation. Temperature monitoring now works end-to-end with proper error handling and user guidance. Fixes temperature proxy setup flow for v4.24.0+
Internal API Package
This directory contains the API server implementation for Pulse.
Important Note About frontend-modern/
The frontend-modern/ subdirectory that appears here is:
- AUTO-GENERATED during builds
- NOT the source code - just a build artifact
- IN .gitignore - never committed
- REQUIRED BY GO - The embed directive needs it here
Frontend Development Location
👉 Edit frontend files at: /opt/pulse/frontend-modern/src/
Why This Structure?
Go's //go:embed directive has limitations:
- Cannot use
../paths to access parent directories - Cannot follow symbolic links
- Must embed files within the Go module
This is a known Go limitation and our structure works around it.