52 lines
2.1 KiB
Markdown
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 동작과 로그를 확인합니다.
|