The release package
The face-matcher repository is the deployment you run. Its core is the release package of the platform Face Matcher is built on: docker-compose.yml, dependencies/docker-compose.yml, run.sh and .env. Around it sit the files that turn the release into Face Matcher: Station, its branding, the restart policy, the license folder, the stop and reset scripts and a few additions to run.sh. Knowing which file owns which setting keeps your changes small and your upgrades painless.
Files
| File or folder | What it configures |
|---|---|
.env | Every engine setting, documented inline. Section 1: registry, image version, number of camera services. Section 2: shared settings: database, RabbitMQ, MQTT, S3, hosting, health checks, logging, OpenTelemetry, GPU, threading, image storage, save strategies, notifications, liveness. Section 3: per-service settings: REST feature sets, enrollment validation, usage statistics, authentication, camera pipeline, edge streams, detection and extraction algorithms, matcher, Leader and Follower. Section 4: Station image version, port and whether the identification page is enabled. |
.env.station | Station: API addresses, camera preview hosts, score-to-percentage conversion, HTTPS, Auth0 or Keycloak, S3 access for image display, optional watchlist member fields, logging, face validation mode. |
docker-compose.yml | The engine services, their ports and which .env values each one receives. |
dependencies/docker-compose.yml | PostgreSQL, pgAdmin, RabbitMQ (with management, MQTT and streams plugins) and SeaweedFS, with their data volumes. |
docker-compose.override.yml | Additions on top of the release: the Station service, restart: unless-stopped on every service and user: root on the services that load the biometric engine (see Install). |
branding/station/ | Station logo, logo without text, favicon and naming-product.json (window title, configuration section name, on-screen messages). See Branding. |
secrets/ | Your iengine.lic. Git-ignored. |
run.sh, deployment-common.sh | The start script: checks the license and links it where the services mount it, sets the public host for image links, creates the network, starts dependencies, migrates the database, creates the S3 bucket, starts the services and Station, prints the URLs. |
stop.sh, factory-reset.sh | Stop keeping data; stop and delete containers, images and volumes. |
migrate-faces.sh, finalize-non-migrated-faces.sh | Re-extract stored face templates after changing the extraction algorithm. See Template migration. |
populate-wl-update-log-stream.sh | Regenerates the watchlist update-log stream when release notes ask for it. |
What differs from the release package
The repository documents its own deviations from the upstream release so you can reapply them after an upgrade:
docker-compose.yml,.env: services outside the Face Matcher scope removed together with their settings..env:REGISTRYpoints to the Innovatrics registry;Notifications__IncludeTemplates=trueso notifications carry face templates; section 4 (Station) added.dependencies/docker-compose.yml: a dependency outside the scope removed; RabbitMQ pinned to 4.3.6 withqueue_master_locatorpermitted; one SeaweedFS data mount.run.sh: takes the license fromsecrets/, setsSTATION_PUBLIC_HOSTand prints the endpoints at the end; the wait for the removed dependency dropped.deployment-common.sh: the wait for the removed dependency dropped.- Scripts for features outside the scope deleted.
docker-compose.override.yml,stop.sh,factory-reset.sh,.env.stationandbranding/added.
Changing the configuration
Edit .env or .env.station, then run ./run.sh again; it re-creates the containers with the new values (a full stop.sh first is not needed). For structural changes such as more camera services or several instances of a service, edit the Compose files as described in Scaling. The settings that Station exposes under Configuration are stored in the database, not in .env.
Production use
The repository as delivered demonstrates a complete, working wiring. Before production, change every credential in .env and .env.station, restrict the published ports to the interfaces that need them, and enable authentication and HTTPS. See Operations.
Keep the production deployment outside your clone of the repository: copy the files to a deployment directory and edit them there. Upgrading then means unpacking the new release over that directory, reapplying the differences listed above and your own edits, running the template migration if the release notes require it, and running run.sh. See Upgrade.