Files
control/README.md
T
2026-06-07 00:58:53 +09:00

2.1 KiB

Control

팬 제어, 시스템 모니터링, WiFi 제어, WakeLock, Web Push 알림을 제공하는 PHP 기반 단일 관리 패널입니다.

주요 기능

  • 로그인 후 팬, 센서, notice, WiFi, WakeLock, Push 구독 상태를 관리합니다.
  • 백그라운드 수집과 팬 정책 적용으로 현재 상태를 유지합니다.
  • WebSocket으로 상태를 갱신하고, 연결 실패 시 HTTP fallback을 사용합니다.
  • Push 구독 등록, 자동 복구, notice 기반 알림 발송을 처리합니다.
  • CPU 온도, RP1 온도, 팬 RPM, 팬 효율, CPU 전력, 배터리 상태를 차트로 표시합니다.
  • dmesg, 프로세스 CPU/메모리 후보, notice history를 한 화면에서 확인합니다.

주요 API

  • public/api.php?action=status
  • public/api.php?action=collect
  • public/api.php?action=fan
  • public/api.php?action=wifi
  • public/api.php?action=push_devices
  • public/api.php?action=dmesg
  • public/api.php?action=delete_push_endpoint

구성

  • public/index.php: 관리 화면
  • public/api.php: 상태 조회와 조작 API
  • config/config.php: DB, 인증, CSRF, Push, shell 실행 공통 함수
  • config/vapid.php: 외부 secret 기반 VAPID 설정 bridge
  • apply_policy.php: CLI/cron 팬 정책 적용
  • bin/control_ws.php: WebSocket 서버

데이터/저장소

  • control_state: 팬 모드와 PWM 상태
  • sensor_logs: 온도, RPM, PWM, 배터리, load, memory, disk, uptime
  • system_notice_state: notice 활성 상태와 기준값
  • push_subscriptions: Web Push 구독 정보

Secret

실행 secret은 /home/seo/secret/control.php에서 로드합니다. 이 파일은 저장소에 포함하지 않습니다.

앱 비밀번호, DB 설정, VAPID key는 외부 secret으로 유지합니다.

운영 체크포인트

  • 센서 수집 주기와 DB 증가량을 확인합니다.
  • 하드웨어 또는 OS 변경 후 fan sysfs 경로를 확인합니다.
  • VAPID key와 앱 비밀번호는 저장소 밖에서 관리합니다.
  • WebSocket 장기 실행 중 DB 연결이 끊길 수 있으므로 reconnect 동작과 로그를 확인합니다.