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

52 lines
2.1 KiB
Markdown

# 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 동작과 로그를 확인합니다.