2번 모듈 신규(raspberry_pi4_sht30/): SHT30 온습도 → cafe24, raw-body X-Signature HMAC, 폐쇄망 오프라인 설치(vendor/install), systemd, CRC/포맷 자가점검. firmware sht30_fw wire 포맷과 byte-parity 검증. 1번 모듈 통합(raspberry_pi4/): 누수+카메라를 동일 서버로. 레거시 sha256(key+json) body-sig → X-Signature HMAC 전환, 사진 canonical=device_id|sensor_id|log_id|timestamp. 서버 통합(php/): api/sensor_data.php 누수 이벤트 수신, api/photo_upload.php 신규(HMAC·finfo·서버생성 파일명·nonce 멱등·sensor 결속), photo.php 인증 사진서빙, dashboard.php 누수 패널+사진, sms_send.php 누수 SMS, config.php 태그/요약. DB: sql/migration_add_leak.sql(가산·멱등), schema_sht30.sql 통합 스키마. 보안 하드닝(외부 펜테스트 대비, 확정 CRITICAL/HIGH 0): cron_heartbeat api_key fail-closed, setup_mfa 부트스트랩 토큰 post-enrollment 잠금, var/ PHP 실행차단, HSTS. 문서/테스트: SYSTEM_OVERVIEW.md, security_hardening_test.php 갱신. 참고: 사용자 요청으로 세션 외 기존 미커밋 변경도 함께 포함. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
46 lines
1.4 KiB
Desktop File
46 lines
1.4 KiB
Desktop File
# =============================================================================
|
|
# /etc/systemd/system/sht30-sensor.service
|
|
# Raspberry Pi 4 부팅 시 온습도(SHT30) 모니터를 자동 실행하는 서비스 (2번 모듈)
|
|
#
|
|
# 설치 방법:
|
|
# sudo cp systemd/sht30-sensor.service /etc/systemd/system/
|
|
# sudo systemctl daemon-reload
|
|
# sudo systemctl enable sht30-sensor
|
|
# sudo systemctl start sht30-sensor
|
|
# sudo systemctl status sht30-sensor
|
|
#
|
|
# ※ WorkingDirectory/ExecStart 경로는 실제 배치 경로에 맞게 수정.
|
|
# 아래는 /home/pi/raspberry_pi4_sht30 에 배치한 경우 기준.
|
|
# =============================================================================
|
|
|
|
[Unit]
|
|
Description=SHT30 Temp/Humidity Sensor Monitor v2 (Pi 4, Module 2)
|
|
After=network-online.target
|
|
Wants=network-online.target
|
|
|
|
[Service]
|
|
Type=simple
|
|
User=pi
|
|
Group=pi
|
|
# /dev/i2c-1 접근에 i2c 그룹 필요
|
|
SupplementaryGroups=i2c
|
|
WorkingDirectory=/home/pi/raspberry_pi4_sht30
|
|
ExecStart=/home/pi/raspberry_pi4_sht30/venv/bin/python sht30_sensor.py
|
|
Restart=always
|
|
RestartSec=10
|
|
StandardOutput=journal
|
|
StandardError=journal
|
|
SyslogIdentifier=sht30-sensor
|
|
|
|
# 환경 변수
|
|
Environment=PYTHONUNBUFFERED=1
|
|
|
|
# 프로세스 전용 /tmp 격리
|
|
PrivateTmp=true
|
|
|
|
# 재시작 상한 (10분 내 5번 실패 시 중단)
|
|
StartLimitBurst=5
|
|
StartLimitInterval=600s
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|