For the complete documentation index, see llms.txt. This page is also available as Markdown.

Linux

Faceplugin Face Recognition API for Linux Docker. On-premise detect, match, and similarity on port 8083. Offline after license activation.

Fully on-premise Face Recognition API for Linux / Docker. Image: faceplugin/face-recognition. Default port 8083.

This product is recognition only. For recognition and liveness in the same container, use Face Recognition + Liveness Linux SDK (faceplugin/face-recognition-liveness-sdk). Or run Face Liveness Detection Linux SDK on port 8084 as a second container.

All processing stays on your server. No biometric data is sent to Faceplugin cloud.

Code

Setup

Sizing: Hosting requirements.

1

Pull from Docker Hub (no Google Drive download)

On Docker Desktop (macOS/Windows) omit the /etc/machine-id volume.

2

Confirm health (no license yet)

3

Copy the machine code

Send machine code to Faceplugin. Docker and local host codes are different.

4

Activate

Put your key in license.txt, then:

Run multiple containers with one license

You only need this section if you want to run multiple Face Recognition containers on the same Linux host.

On Linux, mount /etc/machine-id into each container so they use the same machine code. Each container must have a different container name and host port.

For example:

Activate each container with the same license key (POST /api/activate on each host port).

On Docker Desktop (macOS/Windows), omit the /etc/machine-id volume. Each container may require its own license.

Other ways to run

Option B — Docker Compose (local build)

Put the Google Drive runtime files directly in lib/cpu/, then:

Option C — Native Linux (no Docker)

Same lib/cpu/ layout. Needs glibc 2.38+ (for example Ubuntu 24.04).

Control routes (/api/health, /api/machinecode, /api/activate, /api/licenseStatus) return a JSON envelope. Process POSTs (/api/detect, /api/quality, …) return engine JSON as the HTTP body.

License

Licenses are offline. Request a License & Support.

Try it

Postman: import postman/FaceRecognition-API.postman_collection.json from the repo. Base URL http://127.0.0.1:8083. Paths have no /v1.

Gradio (host only): the Docker image is API-only. On the host:

Open http://127.0.0.1:9003. Tabs: Detect, Quality, Match.

Integrate into your own app

Path
When to use

HTTP (app.py)

Any language. Keep this API running and POST base64 JPEGs.

sdk.py

Python on the same Linux host as lib/cpu/ (or inside the container).

You do not need Gradio in production.

APIs

Endpoint
Purpose

GET /api/health

Process is listening (no license)

GET /api/machinecode

Machine code

GET /api/licenseStatus

License status

GET /api/backend

"cpu"

POST /api/activate

Activate and init_sdk()

POST /api/detect

Detect faces

POST /api/quality

Quality checks

POST /api/feature

Extract template

POST /api/match

Compare two photos

POST /api/similarity

Compare two templates

Full reference: Face Recognition HTTP API. Shared control routes: Shared endpoints.

Some routes wrap the result in a small JSON object (an envelope). Process POSTs return engine JSON as the body. There is no POST /api/identify (no server-side 1:N gallery).

Python:

Call order: get_machine_code → activate → init_sdk → detect / quality / feature / match / similarity.

Request a License & Support · Contact us

FAQ

Is this a Face Recognition API? Yes. Docker image faceplugin/face-recognition, port 8083: POST /api/detect, /api/match, /api/similarity.

Machine code? GET /api/machinecode returns machine code. Docker and host codes differ.

Server-side 1:N? No. There is no POST /api/identify gallery.

Last updated