Skip to content

Configure Modules

The following variables must be defined when starting the module service(s), respectively.

Note: By default this is done in .env file (with shell-like syntax). But any environment variable settings via shell or make call take precedence of .env configuration. So for example, you can source .env and then customize the default values interactively. Alternatively, you can import a customized file, e.g. source .env.local.)

Note: When using the Makefile, some of the static settings in .env will always be overridden dynamically: To optimally match ownership and permissions of existing files with new data to be written, the UID and GID of the ocrd user on the Controller and Manager are taken from the host system.

Note: If you do not want to make build the images yourself, but use the prebuilt images from GitHub Container Registry, then mind the image tag variables. Instead of the default latest development version, you may want to use a stable release: Just checkout the respective Git release, and .env should already point to stable tags.

OCR-D Manager

Name Default Description
MANAGER_BASE_VERSION latest tag of ocrd/core from stage version
MANAGER_IMAGE ghcr.io/slub/ocrd_manager:latest name and tag of image
MANAGER_HOST ocrd-manager name/address of server (for Kitodo)
MANAGER_PORT_SSH 9022 host-side port to exposed SSH server (for external Kitodo)
MANAGER_PORT_WEB 4004 port of web endpoint
MANAGER_ENV_UID 1001 user id of SSH user (id -u when using make)
MANAGER_ENV_GID 1001 group id of SSH user (id -g when using make)
MANAGER_ENV_UMASK 0002 ssh user specific permission mask
MANAGER_KEYS ./ocrd/manager/.ssh/authorized_keys file path with public SSH keys of users allowed to log in
MANAGER_KEY ./ocrd/manager/.ssh/id_rsa file path with private SSH key of internal ocrd user (should match one of CONTROLLER_KEYS)
MANAGER_DATA ./kitodo/data/metadata persistent data volume to mount
MANAGER_WORKFLOWS ./_modules/ocrd_manager/workflows persistent volume for workflows

It is allowed and realistic if MANAGER_DATA is different from CONTROLLER_DATA. Input/output will be synchronized between them at runtime.

Currently, MANAGER_DATA should be the same path as APP_DATA/metadata (which could be just a NFS mountpoint on either side).

OCR-D Monitor

The OCR-D Manager module also includes an OCR-D Monitor service, which can also be configured here.

Name Default Description
MONITOR_IMAGE ghcr.io/slub/ocrd_monitor:latest name and tag of image
MONITOR_HOST ocrd-monitor name/address of server
MONITOR_PORT_WEB 5000 host-side port to exposed Web server
MONITOR_PORT_LOG 8088 host-side port to exposed Dozzle (Docker log viewer)
MONITOR_PORT_DBM 8082 host-side port to exposed OCR-D Database Management (Mongo Express)
MONITOR_DB_ROOT_USER root root user of OCR-D database
MONITOR_DB_ROOT_PASSWORD root_password root password of OCR-D database

Currently, MONITOR_DATA should be the same path as MANAGER_DATA.

OCR-D Controller

(only relevant in profile with-ocrd-controller, see Enable/Disable Modules)

Name Default Description
CONTROLLER_BASE_VERSION 2024-03-08 tag of ocrd/all from stage version
CONTROLLER_IMAGE ghcr.io/slub/ocrd_controller:latest name and tag of image
CONTROLLER_HOST ocrd-controller name/address of server (for Manager/Monitor)
CONTROLLER_PORT_SSH 22 SSH port (for Manager/Monitor)
CONTROLLER_ENV_UID 1001 user id of SSH user (id -u when using make)
CONTROLLER_ENV_GID 1001 group id of SSH user (id -g when using make)
CONTROLLER_ENV_UMASK 0002 SSH user specific permission mask
CONTROLLER_KEYS ./ocrd/controller/.ssh/authorized_keys file path with public SSH keys of users allowed to log in
CONTROLLER_DATA ./ocrd/controller/data persistent data volume to mount
CONTROLLER_MODELS ./ocrd/controller/models path to persistent models (in ocrd-resources/)
CONTROLLER_CONFIG ./ocrd/controller/config path to persistent config (in ocrd/resources.yml)
CONTROLLER_WORKERS 1 number of workers for processing

Kitodo.Production

(only relevant in profile with-kitodo-production, see Enable/Disable Modules)

Application

Name Default Description
APP_IMAGE ghcr.io/slub/ocrd_kitodo/kitodo_production_ocrd:latest name and tag of image
APP_BUILD_CONTEXT ./_modules/kitodo-production-docker/ directory of Dockerfile
APP_BUILDER_GIT_REF master branch "ocrd-main" of git repository (cause using git as BUILDER_TYPE)
APP_BUILDER_GIT_REPOSITORY kitodo/kitodo-production repository of BUILDER_GIT_COMMIT (cause using git as BUILDER_TYPE)
APP_DATA ./kitodo/data persistent volume of application data to mount, e.g. config and modules
APP_KEY ./kitodo/.ssh/id_rsa file path with private SSH key of ocrd user (should match one of MANAGER_KEYS)
APP_PORT 8080 host-side port of Kitodo.Production

Database

Name Default Description
DB_IMAGE mysql:8.0.32 name and tag of image
DB_HOST kitodo-db name/address of database (for Kitodo)
DB_PORT 3306 host-side port to exposed database
DB_ROOT_USER root
DB_ROOT_PASSWORD 1234 root user password
DB_NAME kitodo name of database used by Kitodo.Production
DB_USER kitodo username to access database
DB_USER_PASSWORD kitodo password used by username to access database
Name Default Description
ES_IMAGE elasticsearch:7.17.8 name and tag of image
ES_HOST kitodo-es name/address of server (for Kitodo)
ES_REST_PORT 9200 host-side port to REST API
ES_NODE_PORT 9300 host-side port to inter-node protocol

Active MQ

Name Default Description
MQ_IMAGE ghcr.io/slub/kitodo-production-activemq:latest name and tag of image
MQ_HOST kitodo-mq name/address of server (for Kitodo/Manager)
MQ_PORT 61616 host-side port to exposed TCP Transport