Skip to main content

Configuration

Station is configured through environment variables in .env.station, loaded by the station service in docker-compose.override.yml. Two values are not taken from that file: IDENTIFICATION_ENABLED comes from STATION_IDENTIFICATION in .env, and S3_PUBLIC_ENDPOINT is built from STATION_PUBLIC_HOST, which run.sh exports (defaulting to the host name). After any change to .env.station run:

docker compose up -d station

Compose recreates the Station container with the new environment; the platform services are not touched.

Connection to the platform​

SettingDefaultMeaning
HOST, PORT0.0.0.0, 8000Address and port Station binds to inside the container. The host port is STATION_PORT in .env.
CORE_API_ROOThttp://api:8080/api/v1REST API of the platform on the Compose network.
GRAPHQL_ROOThttp://graphql-api:8080/graphqlGraphQL API, used for queries and subscriptions.
CAM_PREVIEW_HOST_SFCAM1 to ..._SFCAM5cam-1 to cam-5Container hosting each camera slot, used to reach the preview stream (see Cameras).
LICENSE_FILE_PATH/etc/innovatrics/iengine.licLicence file mounted from ./iengine.lic, which run.sh links to secrets/iengine.lic.

Feature toggles​

SettingDefaultMeaning
STATION_IDENTIFICATION (in .env)trueShows the Identification page. Passed to the container as IDENTIFICATION_ENABLED.
DOT_FACE_CAMERA_ENABLEDfalseAllows taking photos with the device camera on the identification page, in the history face filter and in member registration. Needs HTTPS.
DOT_FACE_CAMERA_FACE_CENTER_LIMIT0.2How far from the centre of the frame a face may be for the camera component to accept it.
DOT_FACE_CAMERA_FACE_CONFIDENCE0.06Minimum face confidence for the camera component.
SCORE_CONVERSION_LOWER_LIMIT / ..._PERCENTAGE20 / 30Biometric score shown as this percentage when the linear score type is selected.
SCORE_CONVERSION_UPPER_LIMIT / ..._PERCENTAGE40 / 90Upper anchor of the same conversion (see Settings).
BLACKLIST_WATCHLIST_IDSplaceholderComma-separated IDs of watchlists to show as restricted (see Manage watchlists).
BULK_MEMBER_REGISTER_PARALLELISM4Parallel registration calls during bulk enrollment.
FACE_VALIDATION_MODEpredefinedpredefined validates enrolment images against the platform's face validation rules; none skips the validation.

Watchlist member labels​

Labels are extra key-value fields on a watchlist member, shown in the member profile and in event details and settable in the profile, through the REST API (labels array of the member) or from file names in bulk enrollment. Each label is a pair of settings: the key is what the API stores, the label is the caption Station shows. The package ships ten of them for border-control style data:

WATCHLIST_MEMBER_KEY_0=country
WATCHLIST_MEMBER_LABEL_0=Nationality
WATCHLIST_MEMBER_KEY_1=dob
WATCHLIST_MEMBER_LABEL_1=Date of Birth
...
WATCHLIST_MEMBER_KEY_9=docExpiry
WATCHLIST_MEMBER_LABEL_9=Expires

Change, remove or add pairs (_10, _11, ...) to fit your data. Labels set through the API with a key that is not configured here are stored but not displayed.

Logging​

Station writes its log to the container output, so docker compose logs -f station is the normal way to read it and the monitoring and logs guide shows how to ship it with the other services' logs.

SettingDefaultMeaning
ENABLE_LOGGINGtrueLogging on or off.
LOG_LEVELinfodebug, info or error.
LOG_FORMAT_JSONfalseJSON lines instead of plain text.
LOG_TO_FILEfalseAlso write a rotating log file inside the container. If you enable it, set LOG_FILE_PATH to a path inside the container and mount a volume there; the value shipped in the file is a placeholder.
LOG_FILE_DATE_PATTERN, LOG_FILE_MAX_SIZE, LOG_FILE_MAX_FILESYYYY-MM-DD, 20m, 1dRotation of the log file: date pattern in the name, size per file, retention.

S3 storage​

Station shows images by handing the browser presigned URLs to the S3 storage, so the storage has to be reachable under two names: from the Station container and from the operator's browser.

SettingDefaultMeaning
S3_ENDPOINThttp://seaweedfs:8333Storage address on the Compose network.
S3_PUBLIC_ENDPOINThttp://<STATION_PUBLIC_HOST>:8333Storage address as seen by the browser. Set by docker-compose.override.yml from STATION_PUBLIC_HOST; run.sh defaults that to the host name. If images do not load in the browser, export STATION_PUBLIC_HOST with an address the browser can reach before running run.sh.
S3_ACCESS_KEY, S3_SECRET_KEYadmin / adminCredentials; must match the storage credentials in .env. Change both before production.
S3_BUCKETface-matcherBucket used by the platform.
S3_REGIONus-east-1Region name expected by the S3 client.
S3_URL_EXPIRATION300Lifetime of a presigned URL in seconds.
S3_SKIP_SSLfalseSkip certificate validation when the storage uses HTTPS.
S3_PRECREATE_BUCKETtrueCreate the bucket if it does not exist.

How the platform itself writes to the storage is described in S3 storage.

HTTPS and authentication​

HTTPS_ENABLED, HTTPS_HOST_NAME, HTTPS_KEY_FILE and HTTPS_CERT_FILE make Station serve HTTPS with your certificate, which is required for the device camera features; the HTTPS guide covers certificates and the local-testing alternative.

AUTH0_* and KEYCLOAK_* (each with an _AUTHENTICATION_ENABLED switch), AUTH_HEADER, UNAUTHORIZE_ACCESS_REDIRECTION_URL and KEYCLOAK_ADMIN_URL put Station behind an OpenID Connect provider; ROLES_CLAIM_NAME, ROLE_KEY_* and FORCED_ROLE_NAME_0 map users to roles. See the authentication guide and Roles and presets. Authentication is off by default.

Settings to leave as shipped​

ACCESS_CONTROLLER_ADDRESS (empty) refers to a component that is not part of Face Matcher. Leave it at its shipped value; setting it exposes controls in Station that have no service behind them.

Other switches​

PALMS_ENABLED is the Station switch for the palm screens: palm photos and the palm matching threshold in watchlists, palm events in the live feed and the history, the palm modality on the Identification page and the palm sections of the camera configuration. Face Matcher ships with PALMS_ENABLED=false: the palm services run on the server, but these screens stay hidden. Set it to true and recreate Station (docker compose up -d station) to show them. The server side of palm processing is described in Palm processing.