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+ |
||
|---|---|---|
| .. | ||
| alerts.go | ||
| alerts_test.go | ||
| auth.go | ||
| config_handlers.go | ||
| csrf_store.go | ||
| demo_middleware.go | ||
| diagnostics.go | ||
| DO_NOT_EDIT_FRONTEND_HERE.md | ||
| docker_agents.go | ||
| frontend_embed.go | ||
| guest_metadata.go | ||
| middleware.go | ||
| notifications.go | ||
| oidc_handlers.go | ||
| oidc_service.go | ||
| rate_limit_config.go | ||
| rate_limit_config_test.go | ||
| ratelimit.go | ||
| README.md | ||
| recovery_tokens.go | ||
| router.go | ||
| router_integration_test.go | ||
| security.go | ||
| security_oidc.go | ||
| security_setup_fix.go | ||
| security_tokens.go | ||
| session_store.go | ||
| settings.go | ||
| system_settings.go | ||
| types.go | ||
| updates.go | ||
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.