Getting Started
This section walks you through standing up a Smart Corridor deployment from the official smart-corridor Docker Compose package — from prerequisites and registry access to a running stack with cameras wired to units and watchlists granting clearance.
What you'll need
- A clean, dedicated Linux machine — a fresh VM or bare-metal host running nothing else. Ubuntu 22.04 LTS or later is recommended. All services run as Docker containers.
- Docker Engine with the Compose plugin (
docker compose). - The deployment repository — innovatrics/smart-corridor.
- Registry credentials — a per-client robot account for the Innovatrics registry
registry.dot.innovatrics.com, from the Customer Portal. See First Deployment. - A license file (
iengine.lic) tied to the host hardware, from the Innovatrics Customer Portal. It covers both Face Matcher and the corridor. - Camera streams — RTSP streams from IP cameras reachable from the host, or edge streams from smart cameras.
Deploy on a fresh Linux VM or bare-metal server dedicated to this stack. Real-time video processing competes hard for CPU; sharing the host with other workloads (databases, other Docker stacks, desktop environments) causes dropped frames, missed detections, and timeouts that are easy to mistake for product bugs.
Hardware requirements
The host is sized by Face Matcher, which carries the video processing: the installation floor is an x86_64 CPU with AVX2 support, 4 physical cores, 16 GB RAM and 80 GB of storage, and real deployments are sized by camera count and processing type. The corridor services add little on top. Use Hardware Requirements for the figures; edge streams move most of the load onto the cameras and change the sizing model substantially. The optional MCT overlay needs its own capacity and a per-site calibration — see Multi Camera Tracking.
What gets deployed
The repository has three parts: face-matcher/ (a byte-identical, never edited copy of the Face Matcher release), mct/ (the optional Multi-Camera Tracking services) and secrets/ (the license). Everything joins the face-matcher-network Docker network:
- Face Matcher — camera processing, face detection, watchlist matching, the Station UI and its dependencies (RabbitMQ, PostgreSQL, SeaweedFS S3 storage)
- Hub (
corridor-foundation-service) — turns the identification stream into clearance decisions, publishes them on GraphQL, keeps the event store - CIGS (
corridor-identity-grouping-service) — groups a traveller's detections into one identity - Dashboard (
biometriccorridor) — the operational display on port 8095 - MCT (optional) — eight tracking services plus the MCT Visualizer on port 8004
All images come from the single Innovatrics registry: Face Matcher images from registry.dot.innovatrics.com/vpp/, corridor images from registry.dot.innovatrics.com/border-control/, both pulled with the same robot account.
What start.sh does
start.sh orchestrates startup in the correct order: it starts Face Matcher from the face-matcher/ folder first (with the license from secrets/), waits for it, then starts the corridor services with the versions from .env and the wiring from .env.hub. stop.sh stops everything and keeps data; factory-reset.sh wipes containers and volumes. You do not manage startup order manually.
Steps
- First Deployment — registry access, license, configuration, and running the stack
- Add Cameras — register streams in Face Matcher and assign them to a unit
- Add People to Watchlists — enroll subjects in Face Matcher and mark which watchlists grant clearance