# Managed Portal Deployment Progress ## 2026-05-07 - Started deployment planning. - Confirmed local project path and initial file inventory. - Read Docker Compose and service Dockerfiles. - Located required model weights and approximate transfer size. - First remote SSH inspection attempt did not return usable output; retrying with a simpler command wrapper. - Verified remote host prerequisites using interactive SSH. - Remote deploy parent `/home/xiaozheng/code` exists and target project directory was empty. - First rsync attempt failed because local rsync lacks `--info=progress2`; switching to portable progress flags. - Synced 1.36GB of project files to `/home/xiaozheng/code/managed-portal`. - Verified remote weight files and Docker GPU runtime. - `docker compose config --quiet` completed successfully on the remote host. - First remote build was interrupted after pip resolver spent too long backtracking over OpenCV wheels. - Pinned `people-flow-project` OpenCV dependencies and split the Dockerfile pip install into cacheable layers. - Rebuilt successfully on the remote host and started all four Compose containers. - Verified `http://127.0.0.1:13000/api/managed-services` on the remote host returns both managed services with `running` status. - Verified Compose shows `managed-portal`, `managed-portal-web`, `people-flow-project`, and `store-dwell-alert` running. - Verified boot autostart path: Docker service is enabled and all Compose containers use `restart: unless-stopped`.