FaceTec Server Integration Guides
Learn how to integrate and run the FaceTec Server.
Updating the FaceTec Server
Important Note: This guide is recommended for those that have already integrated the FaceTec Server into their system architecture and are looking to update it to the latest version. For those Integrating the FaceTec Server for the first time, please see the Setting up the FaceTec Server Guide.
Updating the FaceTec Server Guide
Setting Up the FaceTec Server
Important Note: A connection to the FaceTec Server is required for sending Usage Logs and running the FaceTec Server. If you are having undesirable behaviors with sending Usage Logs or initializing your Usage Log Server, please see Diagnosing Usage Log Server Behaviors.
Setting up the FaceTec Server Guide
Docker with the FaceTec Server
The FaceTec Server runs on any platform by using Docker. If you want to run the FaceTec Server locally on your Mac or PC, you will need to download and install Docker. Docker is not required to run the FaceTec Server, but it can make certain aspects of development and deployment easier.
Since Usage Logs must be written to a Persisted (Non-Ephemeral) File System, Docker Volumes are recommended for persisting data within the Docker Container. By default, the FaceTec Docker Container maps the directories such that Usage Logs are written to the host machine's disk. For more information on Usage Log Storage, please see Usage Log Server - Storage Directory Configuration.
Docker + Windows Users: You will need to make sure your Shared Drives are configured correctly. This usually means you need to allow access to your C drive. Please see the Docker Guides for more information.
Important Note: Containerized Applications are recommended to run as a regular User (non-root). By default, Docker containers run as the root user. Please see Docker Official Rootless Best Practices Guide for additional details on running Docker in Rootless mode, and the Docker Official USER Directive Guide for running your application as a non-root user.
Testing Server & Application Health
To test the health of Your Server and Application, you can use a GET request to Your Server's IP Address with the /status endpoint.
The /status endpoint provides an assortment of useful information, including answers to the following:
- Is the FaceTec Server running?
- Are there any errors?
- What is the FaceTec Server version?
- Is the FaceTec Server in development or production mode?
The below example shows the output for a properly configured instance of FaceTec Custom Server (v9) v9.6.88:
{"running":true,"success":true,"wasProcessed":true,"callData":{"tid":"ee8e844c-2c18-4ee4-b3c6-b1141f15c5fd","path":"/status","date":"Oct 10, 2023, 1:37:48 AM","epochSecond":1696901868,"requestMethod":"GET"},"additionalSessionData":{"isAdditionalDataPartiallyIncomplete":true},"error":false,"serverInfo":{"coreServerSDKVersion":"9.6.88","customOrStandardServerSDKVersion":"9.6.88","type":"Custom","mode":"Production","notice":"You should only be reading this if you are in server-side code. Please make sure you do not allow the FaceTec Server to be called from the public internet."}}Server Load & Stress Testing
To perform Load/Stress Testing on the FaceTec Server, you can generate 3D FaceScan, 3D FaceMap, and IDScan payloads and use them to repeatedly call the FaceTec Server APIs. See FaceTec Server Stress Testing Guide for additional details.
Warning! When running the same 3D FaceScans, 3D FaceMaps, and IDScans repeatedly in a Stress/Load Test, the FaceTec Server Replay Check may fail in subsequent API Calls.
Even though the checks may fail, the API requests are still being sent and processed. Since the FaceTec Server is still processing these API requests, Load/Stress Testing can still be performed to analyze Stress/Load metrics.
To perform Load and Stress Testing on the 3D:3D Search and 2D:3D Search APIs, you will need to first produce valid 3D FaceMaps and add them to the Search Database. You can then call the Search APIs in a loop and analyze performance per your load requirements. If you want to work with a larger data set, you can add multiple copies of the same 3D FaceMaps into the Search Database (this is allowed in the Search Database) and then test Searching against it.
FaceTec's Recommended Infrastructure & Tech Stack
The FaceTec Server runs with any infrastructure using the Recommended Hardware, and as such, we recommend using the FaceTec Server in the infrastructure best suited to your task.
Here at FaceTec, we use AWS and Elastic Beanstalk Clusters of FaceTec Servers. This allows for automatic load balancing and scaling. The FaceTec Server is a stateless (no sessions) server that is designed to be horizontally scaled (have more servers added during high usage).
You are free to use whatever infrastructure you desire, including AWS, Azure, Google Cloud, or your own Custom Cloud. The FaceTec Server is designed to be interacted with over an HTTPS API, so you can call it from your own web service with ease and by using secure server-to-server API Calls.
Additional Guides
Important Note: These are supplementary guides that should only be consulted after Initial Integration of the FaceTec Server.
Legacy FaceTec Server Guide
- Standard Server and Server Dashboard
- Custom Server and Server Core SDK
- Enabling 1:N Search
- Integrating with AWS Elastic Beanstalk
Legacy Server Installation Guide
- Architecture Overview
- Security and MongoDB Setup
- Dashboard Deployment and Populating Dashboard Fields
- Hardware and Software Requirements