Pulse/internal/api
rcourtman eb969bfbd5 feat: add turnkey Docker installer with automatic proxy setup
Adds a one-command Docker deployment flow that:
- Detects if running in LXC and installs Docker if needed
- Automatically installs pulse-sensor-proxy on the Proxmox host
- Configures bind mount for proxy socket into LXC
- Generates optimized docker-compose.yml with proxy socket
- Enables temperature monitoring via host-side proxy

The install-docker.sh script handles the complete setup including:
- Docker installation (if needed)
- ACL configuration for container UIDs
- Bind mount setup
- Automatic apparmor=unconfined for socket access

Accessible via: curl -sSL http://pulse:7655/api/install/install-docker.sh | bash
2025-10-19 15:03:24 +00:00
..
alerts.go Ref #556: adjust alert history range handling 2025-10-15 18:41:06 +00:00
alerts_test.go Allow printable alert IDs for acknowledgements (#550) 2025-10-14 16:48:22 +00:00
auth.go feat: enhance sensor proxy with improved cluster discovery and SSH management 2025-10-17 11:43:26 +00:00
config_handlers.go fix: show success message instead of warning when using pulse-sensor-proxy 2025-10-19 14:06:18 +00:00
csrf_store.go chore: tidy repo formatting and linting 2025-09-29 20:19:18 +00:00
demo_middleware.go fix CI errors: remove unused imports and format Go code 2025-09-30 19:59:55 +00:00
diagnostics.go feat: enhance sensor proxy with improved cluster discovery and SSH management 2025-10-17 11:43:26 +00:00
DO_NOT_EDIT_FRONTEND_HERE.md enhance: improve mock data realism and alert system 2025-09-02 21:11:01 +00:00
docker_agents.go feat: add docker agent command handling 2025-10-15 19:27:19 +00:00
frontend_embed.go feat: add OIDC single sign-on 2025-09-29 10:22:27 +00:00
guest_metadata.go chore: tidy repo formatting and linting 2025-09-29 20:19:18 +00:00
middleware.go chore: tidy repo formatting and linting 2025-09-29 20:19:18 +00:00
notifications.go Add Apprise notification integration (#570) 2025-10-18 16:39:39 +00:00
oidc_handlers.go feat: add OIDC logout URL support and improve UX 2025-10-01 10:59:22 +00:00
oidc_service.go improve: add comprehensive debug logging for OIDC troubleshooting 2025-09-30 18:45:30 +00:00
rate_limit_config.go chore: tidy repo formatting and linting 2025-09-29 20:19:18 +00:00
ratelimit.go chore: tidy repo formatting and linting 2025-09-29 20:19:18 +00:00
README.md enhance: improve mock data realism and alert system 2025-09-02 21:11:01 +00:00
recovery_tokens.go chore: tidy repo formatting and linting 2025-09-29 20:19:18 +00:00
router.go feat: add turnkey Docker installer with automatic proxy setup 2025-10-19 15:03:24 +00:00
router_integration_test.go fix: normalize version strings with build metadata in tests 2025-10-16 09:07:40 +00:00
security.go fix: resolve OIDC authentication issues with DISABLE_AUTH and improve UX 2025-10-01 10:53:19 +00:00
security_oidc.go feat: add OIDC logout URL support and improve UX 2025-10-01 10:59:22 +00:00
security_setup_fix.go feat: streamline docker agent onboarding 2025-10-14 09:45:32 +00:00
security_tokens.go feat: add docker agent command handling 2025-10-15 19:27:19 +00:00
session_store.go chore: tidy repo formatting and linting 2025-09-29 20:19:18 +00:00
settings.go chore: tidy repo formatting and linting 2025-09-29 20:19:18 +00:00
system_settings.go feat: implement allowlist-based SSH config validation per Codex review 2025-10-18 23:27:14 +00:00
types.go feat: add turnkey Docker installer with automatic proxy setup 2025-10-19 15:03:24 +00:00
updates.go fix: resolve Docker container permission and path errors in v4.22.0-rc.4 2025-10-10 18:17:38 +00:00

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:

  1. Cannot use ../ paths to access parent directories
  2. Cannot follow symbolic links
  3. Must embed files within the Go module

This is a known Go limitation and our structure works around it.