Skip to content


Application Config File

The configuration of the starting initializing product can be set in the YAML application config file. The application starts up, reads this file, and performs according to the set configuration.

The path to the file is specified in the DOCREADER_CONFIG_PATH environment variable.

For now, the only available option is to configure RFID but in the coming releases the scope will be broadened to various fine-tuning capabilities.

Chip Verification

To install Docker Compose, refer to the Docker official guide.

Download chip-docker-compose.yml and save it as docker-compose.yml:

wget -O docker-compose.yml

To set the license, place the regula.license file into the same folder where the downloaded docker-compose.yml is located.

To start Docreader, invoke:

sudo docker-compose up -d
[+] Running 5/5
⠿ Network test_docreader-network  Created
⠿ Volume "test_minio-data"        Created
⠿ Container docreader             Started
⠿ Container minio                 Started
⠿ Container minio-mc              Started

Check the status:

sudo docker-compose ps
NAME                COMMAND                  SERVICE             STATUS              PORTS
docreader           "./"        docreader           running   >8080/tcp
minio               "/usr/bin/docker-ent…"   minio               running (healthy)>9000-9001/tcp
minio-mc            "/bin/sh -c ' /usr/b…"   create-buckets      exited (0)

To stop Docreader, run:

sudo docker-compose down

To delete data after stopping Docreader:

sudo docker-compose down -v
  1. Install Minio Please refer to the official Minio documentation.

  2. Run Minio by setting default user and password:

    export MINIO_ROOT_USER=minioadmin
    export MINIO_ROOT_PASSWORD=minioadmin
    minio server /data

  3. Install the official minio mc client and create a bucket:

    chmod +x mc
    mc config host add myminio http://localhost:9000 minioadmin minioadmin
    mc mb myminio/chip-verification-data

  4. Set the Chip Verification respective environment variables to the /opt/regula/document-reader-webapi/.env file:

    • REGULA_STORAGE_URL=localhost:9000
    • REGULA_STORAGE_CHIP_DATA_BUCKET=chip-verification-data


To verify PA for the RFID sessions:

  1. Create a folder and copy masterlists there.
  2. Mount the host folder to the folder inside the container and point to that specific folder using the RFID_PKD_PA_PATH ENV variable or simply enable the RFID_PKD_PA ENV variable (uses default masterlists location "/app/rfid_pkd").
mkdir ~/masterlists
cp *.ldif ~/masterlists/

To verify PA for the RFID sessions:

  1. Create a folder (e.g. /opt/regula/document-reader-webapi/rfid_pkd - default) and copy masterlists here.
  2. Set RFID PKD respective environment variables to /opt/regula/document-reader-webapi/.env file
    • DOCREADER_RFID_PKD_PA_PATH=/opt/regula/document-reader-webapi/rfid_pkd
  3. Restart the service.

RFID_PKD_PA option

docker run -it -p 8080:8080 -v ~/regula.license:/app/extBin/unix_x64/regula.license -v ~/masterlists:/app/rfid_pkd -e RFID_PKD_PA="true" regulaforensics/docreader


docker run -it -p 8080:8080 -v ~/regula.license:/app/extBin/unix_x64/regula.license -v ~/masterlists:/app/masterlists -e RFID_PKD_PA_PATH="/app/masterlists" regulaforensics/docreader

You can customize the path to folder containing masterlists via the DOCREADER_RFID_PKD_PA_PATH environment variable.

Note that the application should have the write permission on the folder where logs will be stored.

Defining critical error codes

Use paSensitive to define a list of error codes (int type) that will be considered critical when processed. For the full list of notification codes, see the eLDS_ParsingErrorCodes enumeration.

Here is an example of a YAML config file with two critical error codes defined:

            - -1879048190
            - -1879048189

To disable paSensitive, specify an empty list:


Defining PA sensitive codes

Use paIgnoreNotificationCodes to define notification codes (int type) that should be ignored during passive authentication (PA). For the full list of notification codes, see the eLDS_ParsingNotificationCodes enumeration.

Here is an example with two PA sensitive codes defined:

    "processParam": {
        "rfid": {
            "paIgnoreNotificationCodes": [