You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

87 lines
6.2 KiB

DP World Smart Solutions — Web Configurator
파트너 전달물 — v1.12.3 (이전 전달 v1.12.1 이후 v1.12.2·v1.12.3 반영 — 상세: RELEASE-NOTES.md §0)
BSP 이미지 포함용 클린 스냅샷. 커밋 히스토리 없음, 내부 전용 자료 없음.
일자: 2026-07-01
================================================================================
이 패키지는 무엇인가
================================================================================
디바이스용 Python 3 웹 설정기(stdlib 전용 — pip 없음)와, 디바이스에서 구동하기 위한
systemd 유닛입니다. nginx 설정은 optional sample입니다. 태그 릴리스를 평탄 스냅샷(`git archive`)으로 추출해
커밋 히스토리와 개발/내부 문서가 포함돼 있지 않습니다.
먼저 읽을 문서:
RELEASE-NOTES.md 이번 버전 변경/주의/배포방법 (한글)
BSP-INTEGRATION.md 설치 경로 + 샘플 bitbake recipe + RDEPENDS (한글)
================================================================================
구성
================================================================================
src/ 애플리케이션 (Python 3, stdlib 전용)
server.py 진입점 — HTTP 서버 (기본 PORT 9090)
config_validator.py config 쓰기 경로 검증/정규화
dpworldapp_enums.py 디바이스 config-reader 계약 enum 집합
enum_normalizer.py 입력 별칭 정규화
migrations.py 부팅 시 1회 DB 마이그레이션 (schema_meta 게이트, 멱등)
db_manager.py SQLite(board_config) 접근
network/ network-apply 서브시스템
uplink.py [v1.12.1 신규] 텔레메트리 Uplink — 호스트 라우트(/32) 관리 + 워치독
firmware/ 펌웨어 OTA 서브시스템
static/ 웹 UI (HTML/CSS/JS)
js/pages/uplink.js [v1.12.1 신규] 텔레메트리 Uplink UI (인터페이스 전환 + 라우팅 투명성)
[v1.12.1 전체 소스 리뷰 41건 안정화: 정직성·안전성·구조 개선. dpworldapp 공유 DB·계약·타입 무변경]
deploy/ 디바이스 통합 산출물
web-configurator.service 메인 systemd 유닛 (python3 src/server.py, :9090)
nginx.conf optional reverse proxy sample (:80 → 앱)
dpworld-network-*.service.d / dpworld-network-apply-hardened.sh / *.conf
dpworld-ap-*.service / dpworld-ap-apply.sh / dpworld-hostapd-ap0 / dpworld-udhcpd-ap0
dpworld-net-recover.service
docs/ architecture, DEPLOY, 가이드,
dpworldapp_schema_handoff/(데이터 계약+스키마), config-spec/
scripts/deploy.ps1 (참고) PC→디바이스 라이브 배포 도구 — BSP 베이킹에는 불필요
README.md CHANGELOG.md VERSION RELEASE-NOTES.md BSP-INTEGRATION.md DELIVERABLE-MANIFEST.txt
================================================================================
설치 위치 (디바이스) — 샘플 recipe는 BSP-INTEGRATION.md 참조
================================================================================
src/ → /usr/lib/web-configurator/src/ (${libdir}=/usr/lib)
deploy/web-configurator.service → systemd 유닛 디렉토리
deploy/dpworld-*.service + *.d/ → systemd 유닛 디렉토리 (제품이 사용하는 것만)
deploy/dpworld-*.sh / *.conf → 각 유닛 ExecStart 가 가리키는 경로
deploy/nginx.conf → optional nginx 사이트 설정 디렉토리 (제품에서 사용할 때만)
enable: web-configurator.service (+ 필요한 dpworld-* 유닛)
================================================================================
런타임 요건
================================================================================
인터프리터 : python3 (stdlib 전용 — pip 패키지 없음)
리슨 : PORT 9090 (유닛 env로 변경 가능)
DB : /home/root/db/dynamic_data.db (env DB_PATH)
로그 : /opt/log/dpworldapp (env LOG_DIR)
쓰기 경로 : /opt/log/dpworldapp /opt/fw_staging /opt/fw_upload
/opt/config_backups /home/root/db /home/root/network
(앱 코드 /usr/lib/web-configurator 는 read-only — 쓰기 경로 아님)
메모리 상한 : MemoryMax=128M (유닛에 설정됨; v1.11.16에서 48M→128M 상향)
nginx optional: deploy/nginx.conf 는 :80 reverse proxy가 필요한 BSP용 sample입니다.
scripts/deploy.ps1은 nginx를 설치/수정하지 않으며, 앱을 :9090으로 직접 접근하면 없어도 됩니다.
sample을 사용할 경우 proxy_pass 를 앱 포트(:9090)로 맞추세요.
================================================================================
전제 (디바이스 firmware 제공 — 이 패키지에 미포함)
================================================================================
base 네트워크-적용 유닛은 firmware-native 입니다 (이 패키지에 없음):
dpworld-network-apply.service / dpworld-network-seed.service
(둘 다 /usr/bin/dpworld-network-apply.sh 를 호출함)
→ 권장(BSP 베이킹): 본 패키지의 동봉 하드닝본(dpworld-network-apply-hardened.sh) 내용을
/usr/bin/dpworld-network-apply.sh 원본 이름으로 직접 교체 설치 (§7 ①). base 유닛이 그 경로를
호출하므로 자동 적용. 펌웨어 원본 교체 불가한 라이브 디바이스는 .service.d/ override 드롭인 fallback (§7 ②).
dpworldapp(텔레메트리 바이너리)는 firmware-native. nginx는 제품 이미지가 :80 프록시를 제공할 때만 필요.
포함된 .sh: dpworld-ap-apply.sh, dpworld-network-apply-hardened.sh (자세히 BSP-INTEGRATION.md §7 + docs/firmware-boot-hardening.md)
================================================================================
미포함 (내부 전용)
================================================================================
개발 커밋 히스토리, 내부 분석/설계 노트, 개발/감사 스크립트, VCS·에디터 설정,
테스트 스위트, 샘플 import config, 프런트 테스트 도구(package.json). 패키지에는
런타임 앱·디바이스 통합 유닛·파트너용 문서만 포함됩니다.