DP World Smart Solutions — Web Configurator 파트너 전달물 — v1.11.16 BSP 이미지 포함용 클린 스냅샷. 커밋 히스토리 없음, 내부 전용 자료 없음. 일자: 2026-06-23 ================================================================================ 이 패키지는 무엇인가 ================================================================================ 디바이스용 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/ firmware/ network-apply / 펌웨어 OTA 서브시스템 static/ 웹 UI (HTML/CSS/JS) 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/ → /opt/web-configurator/src/ 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/web-configurator /opt/log/dpworldapp /opt/fw_staging /opt/fw_upload /opt/config_backups /home/root/db /home/root/network 메모리 상한 : 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). 패키지에는 런타임 앱·디바이스 통합 유닛·파트너용 문서만 포함됩니다.