Build from Source#
This guide provides detailed instructions for building the POI Re-identification application container images from source code. Whether you are customizing the application or troubleshooting deployment issues, this guide walks you through the complete build process.
Note: Pre-built images are available on Docker Hub (
intel/poi-backend:2026.1.0-rc1andintel/poi-ui:2026.1.0-rc1). Thedocker-compose.ymlreferences them directly —make upwill pull them automatically. Building from source is only needed if you are customizing the application.See Get Started for the full setup guide.
Overview#
The POI Re-identification application consists of multiple components that work together:
POI Backend: FastAPI server for POI enrollment, FAISS matching, MQTT consumption, and alert generation.
React UI: TypeScript/React single-page application for the operator interface.
Alert Service: Dedicated alert fan-out microservice (pre-built image).
Redis: In-memory data store for metadata, events, and caching.
Step 1: Clone the Repository#
git clone https://github.com/intel-retail/storewide-loss-prevention.git
cd storewide-loss-prevention/person-of-interest
Step 2: Initialize Environment#
make init
Use make init to generate .env and pipeline configs from zone_config.json. If you
only need to create .env from .env.example, run make init-env instead. See
Get Started for the required variables.
Step 3: Build the Docker Images#
Local Build (No Registry)#
make build REGISTRY=false
This builds the following images locally:
Image |
Dockerfile |
Description |
|---|---|---|
|
|
Backend API server |
|
|
React UI |
Registry Build#
To build and tag images for a container registry:
export REGISTRY=docker.io/username
make build
This builds the images and tags them as:
docker.io/username/poi-backend:latestdocker.io/username/poi-ui:latest
What the Build Does#
The make build target performs the following:
Pulls SceneScape images (if available) from the local Docker cache
Builds POI backend — multi-stage Docker build with OpenVINO™ runtime, FAISS, and Python dependencies
Builds POI UI — multi-stage Node.js build producing a static nginx container
Tags images for the specified registry (if
REGISTRYis notfalse)
Step 4: Launch the Application#
make up
Verify all containers are running:
make status
Available Make Targets#
Target |
Description |
|---|---|
|
Build POI backend and UI images |
|
Start all POI services |
|
Stop all services |
|
Restart all services |
|
Follow logs from all POI services |
|
Follow alert service logs |
|
Generate .env and pipeline configs from zone_config.json |
|
Create |
|
All-in-one: init + models + build + start |
|
Start SceneScape only |
|
Stop SceneScape only |
|
Export scene config from running SceneScape |
|
Download OpenVINO AI models |
|
Single-scene latency benchmark |
|
Iterative stream density benchmark |
|
Consolidate benchmark metrics to CSV |
|
Generate plots from benchmark metrics |
|
Run backend unit tests |
|
Run tests with coverage report |
|
Generate HTML coverage report |
|
Update git submodules from remote |
|
Stop and remove containers + volumes |
|
Remove generated secrets and .env |
|
Remove LP Docker images |
|
Clean everything including videos |
|
Show service status |
|
Show all available targets |
What to Do Next#
Get Started: Complete the initial setup and configuration steps
System Requirements: Review hardware and software requirements
How to Use the Application: Learn about the application’s features
API Reference: Explore the available REST API endpoints
Troubleshooting: Find solutions to common deployment issues