7.2 goobi_config.properties

In the configuration file goobi_config.properties, some fundamental settings are done for Goobi Workflow. The file is usually located at the following file system path:


For example, this configuration file looks as follows:

# -----------------------------------
# application information
# -----------------------------------

ApplicationHeaderTitle=Goobi workflow

# Text that describes the website

# Developer mode (true) or production mode (false)

# -----------------------------------
# directories
# -----------------------------------

# Main folder for Goobi incl. subfolders config, xslt, rulesets, metadata etc.
# Path configured here should end with path separator
# sample and default if missing: /opt/digiverso/goobi/

# use this folder if metadata directory is not goobiFolder + metadata/

# parent folder for home directories, default is goobiFolder + users/

#folder for debugging files, can be used by opac beautifier 

# folder for the process log
# for compatibility reasons, also folder_processlog_internal is requested

# folder for mass upload functionality

# path for swapping, this could for example be /tmp/unused/

# naming rule for master folder 

# naming rule for media folder

# naming rule for source folder

# naming rule for image fallback folder - not needed any more, is replaced with thumbs directories
# default value is an empty string

# naming rule for ocr text folder

# naming rule for pdf folder

# naming rule for ocr xml folder

# naming rule for ocr alto folder

# naming rule for import folder

# naming rule for export folder

# create master directory if it does not exist

# indicates whether the source folder should be created automaticly or not, default is false

# -----------------------------------
# global user settings
# -----------------------------------

# set a default language, language can be changed by the user. If no language is set, the browser default is used

# anonymized statistics, displaying user on steps, etc
# possible values: true/false

# enable or disable usage of gravatar icons

# The minimum password length for user accounts
# This value is also used for new generated passwords, they are generated with
# this length + 10

# Multiple additional user rights can be set here, default is an empty list

# -----------------------------------
# user interface features
# -----------------------------------


# include the file accessibility.css in the template. Can be overwritten in user settings

# show statistics box on startpage, default is true

# enable or disable the finalize button in task/batch edition screens. The default value is to display the button

#show button to link into home directory

#display confirmation dialogue when link into home directory is set from process list 

# A button to reimport already exported content can be activated

# use this parameter to exlude user agents from session list

# -----------------------------------
# ldap
# -----------------------------------

# Logins ueber LDAP verwenden

# -----------------------------------
# truststore
# -----------------------------------

# Keystore for LDAP and other services
# There is no default value, but it can look like this example:
# /opt/digiverso/goobi/scripts/mykeystore.ks

# -----------------------------------
# open id connect
# -----------------------------------

# Must be set to true to use OpenID Connect
# Automatic redirection to OpenID Connect login
# The OpenID Connect authentication server
# API endpoint for logout command
# The issuer of OpenID Connect
# The JWK set of OpenID Connect
# The client ID of this server
# The notifying method
# Can be set to true to use SSO logout

# -----------------------------------
# single sign on
# -----------------------------------

# Enables a login method via HTTP header field
# The login type via the HTTP header field
# The name of the HTTP header field to login
# Enables a logout page for 

# -----------------------------------
# external users
# -----------------------------------

# enable an additional login area for external users, it allows a different UI and a self registration 

# assign the self registered users to this institution, this could be "goobi" for example

# assign the self registered users to this authentication type

# -----------------------------------
# database search
# -----------------------------------

# enable fulltext search mode for metadata searches. Doesn't work on h2 or older mysql/mariadb databases

# configure fulltext search mode, possible values are 'NATURAL LANGUAGE MODE' or 'BOOLEAN MODE'
# see https://www.w3resource.com/mysql/mysql-full-text-search-functions.php
#FulltextSearchMode=BOOLEAN MODE

#truncation characters in sql queries

# enable this to use a specific index for my tasks queries. The best table index might be different from database to database
# if commented out, no specific index is used

#generate one metadata index field for multiple metadata coming from the METS file

# -----------------------------------
# processes and process log
# -----------------------------------

# Set this to true to automatically reset the process log if processes are cloned

# allow white spaces in directory names or replace them with __

# allow import with plugin mechanism for mass imports

# allow process title duplication

# number of maximal items per batch, if not configured the default is 100

# enables the option to see the last edition date, username and title of the last finished step

# Defines the start times of the daily delay job, the daily vocab job and the daily history analyser job
# If missing or value is -1, the job is disabled.
# Every other number is interpreted as MILLISECONDS after midnight.
# These values are requested by org.goobi.production.flow.jobs.JobManager

# This is the upload frequency of the goobi authentication server in MINUTES
# This value is requested by org.goobi.production.flow.jobs.JobManager

# Defines the 

#activate additional columns for search result

# -----------------------------------
# scripts
# -----------------------------------

# These values can be set to paths to bash script files that do the concerning tasks

# -----------------------------------
# s3 bucket
# -----------------------------------

# Can be set to true to enable S3 usage

# Can be set to true to use a custom S3 service

# If useCustomS3 is enabled, the endpoint can be specified here

# The used S3 bucket is specified here

# The access id of the account of goobi against the S3 service

# The secret access key of that account

# The number of retries if a connection does not succeed

# The timeout for any connection tries

# The timeout for socket concerning things

# -----------------------------------
# proxy server
# -----------------------------------


# -----------------------------------
# internal servers and interfaces
# -----------------------------------

# allow external programms to send commands to Goobi via WebAPI

#the jwtSecret is needed to (among others) authenticate mail delivery deactivation

# goobi base url, can be used when url cannot be detected from user sessions

#The url of the plugin server of goobi

# Basispfad fuer OCR (ohne Parameter)

# TimeOut for GoobiContentServlet-Request via HTTP in ms (default value, if nothing defined here: 60000)

# The url, the user name, the password and the upload frequency can be set
# for the content server here

# account name for geonames api

# -----------------------------------
# message broker
# -----------------------------------

# Set this to true to let the message broker start

# The default value is the configuration folder + "goobi_activemq.xml"

# The server IP or domain of the message broker

# The port number of the message broker

# The password to access the message broker

# The number of parallel messages can be set here

# External Queues can be enabled here

# The type of the external queue, currently the possible values are "SQS" and "activeMQ"

#set this to true if you want to test the SQS external queue with elasticMQ

# -----------------------------------
# mets editor
## mets editor / general properties
# -----------------------------------

# initialise all sub elements in Mets editor to assign default values, default value is true

# create pagination when mets editor is opened 

# use special pagination type for automatic default pagination (uncounted, roman, arabic)

# configure the locking time for mets editor timeout in ms, default is 30 minutes

# use external ocr for text in mets editor or use existing files 

# The number of backups can be set here. 0 means that no backups are created

# -----------------------------------
## mets editor / user interface
# -----------------------------------

# OCR-Button fuer ausgewaehltes Strukturelement anzeigen

# Display the METS editor area for manipulation of the image set

# Display archived folders

# display/hide metadata popup in structure tree

# use a maximum of characters to display titles in the left part of mets editor, the default value is 0 (everything is displayed)  

# -----------------------------------
## mets editor / images and thumbnails
# -----------------------------------

# enable to show image comments in METS editor, imageQA and LayoutWizzard

# Number of images in thumbnail view

# This value can be set to true to use image tiling in the METS editor

# sorting of images
# At this time implemented sorting options:
# number (default): 1 is lesser then 002, compares the number of image names, characters other than digits are not supported
# alphanumeric: 1 is greater then 002, compares character by character of image names, all characters are supported

# Prefix for image names as regex. Default is 8 digits \\d{8} and gets validated

# define owner of images, when read access is provided. Default is root user 

# This can be set to true to use image thumbnails

# Size of thumbnails in METS editor

# Maximum number of requested thumbnails to not overload the server

# The maximum image size in pixels

# The maximum image size in bytes, MaxImageFileSizeUnit must be set as factor

# The unit for the maximum image size in bytes, MaxImageFileSize must be set as numeric value

# Sizes for big images in METS editor to allow standard display and deep zoom
# This value can be set multiple times

# The size of image tiles
# This value can be set multiple times

# The scale of image tiles
# This value can be set multiple times

# A list of image file types that are used for process checks

# -----------------------------------
## mets editor / validation
# -----------------------------------

# grundsaetzliche Metadatenvalidierung durchfuehren oder nicht

# Validate the images in the METS editor

# regular expression to check if the process title is valid

# regular expression for all characters to remove in title generation

# -----------------------------------
## mets editor / export
# -----------------------------------

# The path to the exif tool to export the images

# set if Master-Images-Folder 'orig_' should be used at all

# if this parameter is missing or 'false' the old export mechanism is used, otherwise there is no timelimit for export 

# Validate images on mets export. Default value is true

# Defines the name of the metadata field where the project title gets exported. 
# If the field is empty, missing or contains an unknown value, the project title is not written.

# Defines the name of the metadata field where the institution name gets exported. 
# If the field is empty, missing or contains an unknown value, the institution name is not written.

# Define if files shall get exported if optional file groups for these files are configured

# export in temporary file, move it to destination or export directly to destination

# Use UUID for each file id instead of incremental numbers

# Create premis elements for technical metadata for each exorted file  

# Define here if in the automatic export images shall be exported too or not

# Define here if in the automatic export OCR results shall be exported too or not

# Allow the PDF generation as downloadable file instead of storing it into the users home directory


This configuration file has been used in Goobi Workflow for a very long time and therefore contains partly obsolete settings which are supported nowadays only for compatibility reasons. These are marked separately and if necessary describe an alternative how to replace these settings.

Since the settings have been added over a long period of time and are still being added, different naming conventions have always been used in the variable names. Therefore, special attention must be paid to the correct use of upper and lower case as well as underscores and periods in the variable names.

This configuration file contains settings for many different topics. Sometimes it is unavoidable that certain settings fit to several topics and, depending on the application purpose, can also be in different categories. If certain settings cannot be found at the expected place, it is recommended to search the page with the search function of the browser (usually Ctrl+F).

Many settings have default values that are chosen to be useful for most users. Therefore, not all settings need to be specified in the configuration file or can simply be commented out.

Comments are marked with a hash symbol (#) at the beginning of the line. This is also useful to disable settings.

# This is a comment and is ignored
# setting=This is a setting that is also ignored
setting=This setting is used

Data types used

Data types are specified for the settings in this configuration file. Unless otherwise specified, the following values are allowed:

Basic information about Goobi Workflow

There is some basic information about the installed Goobi Workflow instance and about Goobi in general, specified in the configuration and partially displayed on the login page in the web browser.


Some directory paths can be set in the configuration file. Most of them are specified relative to the Goobi directory. The Goobi directory is usually located in /opt/digiverso/goobi/.

Some directories contain the text sequence {processtitle}. This is used in the respective directory names to insert the automatically generated title of a process. This ensures that the corresponding directories are created and used separately for each process.

General user settings

All custom user settings are stored by Goobi Workflow in the internally used database. The settings specified here are relevant for pages where no user is logged in (for example, the login page) and therefore the user-specific settings do not exist. Other settings in this category apply to all users and are not account-specific customizable.

Minimum password length

The password length is only checked when creating an account and when changing the own password. Existing passwords that are too short can still be used as long as this value is increased afterwards.

Administrators have the possibility to generate a new random password for users. These are always generated 10 characters longer than the minimum password length.

Additional user permissions

Additional user permissions can be specified. For this purpose, a new entry with the 'userRight' property is made for each added permission. Thus, this value can occur multiple times and will be interpreted as a list by Goobi Workflow.

This could look like this


Note: You should not enter user permissions whose name already exists in Goobi Workflow. This can lead to wrong behavior of some functions.

Additional functionalities in the user interface

Goobi Workflow allows some optional functionalities for the user interface in the web browser. For this purpose there are the following switches that can be set to 'true' to enable functionalities:

The following setting is used to filter the list of displayed sessions in the session overview. The setting itself can be used multiple times, each time specifying a client name (for example browser name) to be filtered from the session list.

For example, this looks like this if there are multiple names:


Activate LDAP

The actual LDAP configuration is located in the database used by Goobi Workflow. In this database, there is a data record with numerous setting options for each LDAP group used. Whether LDAP is included can be controlled with the following parameter.

Configure truststore

The truststore is used in Goobi Workflow to manage certificates and SSH keys. These can be used, for example, for authentication to the LDAP server or to other servers. To use the truststore, the following values must be configured.

OpenID Connect

Normally, user accounts are stored in the mariadb database managed by Goobi Workflow. Additionally there is the possibility to authenticate users with OpenID accounts.

Single Sign On (SSO)

SSO can be used to allow and configure authentication via HTTP headers. This allows or disallows staying logged in to a session in the browser using HTTP header fields.

Set up external users

The following settings can be used to determine whether users with external accounts can be logged in to the system and, if so, how default values should be set that otherwise exist for normal accounts in the database.

Database settings

In Goobi Workflow it is possible to search for specific terms in processes, tasks and other records. Since the search is handled by the SQL database used in the background, there are some settings available to adapt the search to the needs of each project.

For the settings DatabaseLeftTruncationCharacter and DatabaseRightTruncationCharacter, % is specified in each case. This will cause the database search to be performed with SQL as follows (This example is for illustration purposes only and does not work this way in the actual database):

SELECT Title FROM Book WHERE Book.Title LIKE "%search term%";

This selects all records in which the search term occurs at any position. For example, if you omit the prefix % and search for search term%, you can search at the beginning of a record. This means, for example, that all books beginning with "The" can be searched for. If the prefix and suffix are omitted, only the search term is searched for and all records are selected that exactly match the search term.

To make database searches easier, aliases can be defined to group multiple properties together as one meta-property. For example, when searching for a person, it would be quite time-consuming to search for all authors, publishers, clerks, other persons, etc. For this reason, search terms can be listed and grouped under one name.

For example, following aliases could be configured:

index.Person=Author, OtherPerson, Publisher, Editor
index.Institution=University, Museum, Archive

Processes and process log

The following settings can be used to set the process log and some details for the editing of processes.

Configuration of jobs

For automatically executed background processes, it is possible to specify when they should be executed. The first three properties in the following list, marked with daily, are executed every day. The number of milliseconds specified is the time between 0:00 and the time the task is executed. This has the advantage that certain tasks can be executed at night, for example, when the load on the server is low.

The second advantage of this configuration is that the times of day can be set according to the difference between server time and the most used user time of day. This can happen when a server is located in another country (or uses UTC) and employees worldwide from different time zones work together on the server.

If -1 is specified, the corresponding job will be disabled.

The number of milliseconds can be calculated as follows:

  • One second has 1000 milliseconds

  • One minute has 60 seconds and thus 60 000 milliseconds

  • One hour has 60 minutes and thus 3 600 000 milliseconds

  • One day has 24 hours and thus 86 400 000 milliseconds.

So the given time should be between 0 and 86 400 000 to avoid errors. A few examples:

  • For 0:00 o'clock 0 is indicated

  • For 3:00 o'clock (3:00 AM) 3 * 3 600 000 = 10 800 000 is indicated

  • For 18:30 (6:30 PM), 18 * 3 600 000 + 30 * 60 000 = 66 600 000 is given

For the setting 'goobiAuthorityServerUploadFrequencyInMinutes' a time in minutes is specified.

Downloadable information

In Goobi Workflow, processes, templates, masterpieces and metadata can not only be searched and displayed, but also exported to various file formats and downloaded. Some data from the database are already taken into account by default:

  • processes.Title The title of a process

  • processes.processesID The ID of a process

  • processes.creationdate The creation date of a process

  • processes.sortHelperImages The number of images in the process

  • processes.sortHelperMetadata The number of metadata in the process

  • projects.title The title of the project in which the process is located

  • log.lastError The last detected error in the editing of this process

In addition, the downloadAvailableColumn setting can be used to include other properties in the exported files. For this purpose the mentioned setting can be used multiple times. All matching rows will be read in together by Goobi Workflow and processed as a coherent list.

In each line exactly one table column name from the Goobi database is specified. The following table columns are currently available (Goobi version 22.08):

  • prozesseeigenschaften.prozesseeigenschaftenID

  • prozesseeigenschaften.Titel

  • prozesseeigenschaften.WERT

  • prozesseeigenschaften.IstObligatorisch

  • prozesseeigenschaften.DatentypenID

  • prozesseeigenschaften.Auswahl

  • prozesseeigenschaften.prozesseID

  • prozesseeigenschaften.creationDate

  • prozesseeigenschaften.container

  • vorlageneigenschaften.vorlageneigenschaftenID

  • vorlageneigenschaften.Titel

  • vorlageneigenschaften.WERT

  • vorlageneigenschaften.IstObligatorisch

  • vorlageneigenschaften.DatentypenID

  • vorlageneigenschaften.Auswahl

  • vorlageneigenschaften.vorlagenID

  • vorlageneigenschaften.creationDate

  • vorlageneigenschaften.container

  • werkstueckeeigenschaften.werkstueckeeigenschaftenID

  • werkstueckeeigenschaften.Titel

  • werkstueckeeigenschaften.WERT

  • werkstueckeeigenschaften.IstObligatorisch

  • werkstueckeeigenschaften.DatentypenID

  • werkstueckeeigenschaften.Auswahl

  • werkstueckeeigenschaften.werkstueckeID

  • werkstueckeeigenschaften.creationDate

  • werkstueckeeigenschaften.container

  • metadata.processid

  • metadata.name

  • metadata.value

  • metadata.print

It should be noted that only the column name is specified in the configuration. Otherwise the columns cannot be found, because the column names specified here are directly composed with the expected table names and searched. This has the side effect that by specifying for example 'Title' the title of processes, the title of templates and the title of masterpieces are taken into account.

For example, the following configuration can be made:


This would result in the following additional table columns being used:

  • prozesseeigenschaften.Titel

  • prozesseeigenschaften.DatentypenID

  • vorlageneigenschaften.Titel

  • vorlageneigenschaften.DatentypenID

  • werkstueckeeigenschaften.Titel

  • werkstueckeeigenschaften.DatentypenID

  • metadata.name

  • metadata.value

  • metadata.print


Scripts can be configured to set up the file system. In a Goobi installation there are already suitable scripts included, but they are not set as default values here.

Include S3 cloud

Amazon provides a cloud system where data objects can be stored in "buckets". This can be integrated by Goobi Workflow and used to exchange data with other servers.

To use S3, access data from the S3 service used is required. These must be specified in this configuration file.

Proxy server settings

A Goobi server can use a proxy server for certain transactions with other servers or clients. By default, no proxy server is configured. To use a proxy server, you must first enable its use.

The default values for http_proxyIgnoreHost are predefined as follows. The list can be extended as needed:


Server and API settings

This category includes some settings that can be used to configure URLs and credentials to specific web services. Settings are also available to determine the behavior of the internal REST API. Especially for URLs, make sure to use the correct protocol (HTTP or HTTPS) and port number if the corresponding server or service uses one other than 80.

Configure message queues

Goobi Workflow uses multiple message queues to communicate with other processes on the same server (localhost) or other servers. ActiveMQ is always used for production use. For development purposes, SQS can be used in some cases. Since the entire constellation and configuration of the message queues is somewhat confusing, all configuration possibilities are documented here for the sake of completeness, even if individual constellations are not used on production systems. In each case, it is indicated which configurations are relevant for a production system.

Message queues used

  • Goobi Workflow uses one or more slow queues to transmit normal process communication notifications.

  • There is a fast queue for transmitting particularly small or time-critical information.

  • An internal DLQ (Dead Letter Queue) is used to catch undeliverable notifications on the same server.

  • An external DLQ is used to catch undeliverable notifications between multiple servers.

  • There is a separate queue for commands that can be sent either on the same server or between different servers. These can be executable scripts, for example.

Simple Queue Service (SQS)

In principle, all queues can be operated with ActiveMQ. The external DLQ and the queue for commands have the special feature that they can work either with ActiveMQ or with SQS (Simple Queue Service). As long as ActiveMQ is used for these queues, it is possible to switch between a localhost service and an external service. The localhost service is set with default parameters and does not need to be configured further. If an external service is to be used or other individual configurations are to be made, this is configured in the file goobi_activemq.xml. The SQS service, on the other hand, is always located on the same server (localhost) and does not need to be configured.


Additionally the names of the respective queues can be configured. This is normally not required and is documented here for completeness.

Metadata editor

The metadata editor has many setting options that can be sorted both technically and thematically. As a compromise, and because there is no "one" correct sorting, all settings are sorted by categories, such as "User Interface", "Export", etc. For OCR settings, for example, this means that showing/not showing the OCR button is configured in the "User Interface" section, while technical details about OCR are described in the "Export" section.

General settings

In the General Settings you can find settings concerning the editor itself and default values for new documents.

User interface

The "User Interface" category documents settings that can be used to configure the display of content or the display/non-display of buttons.

Image files and thumbnails

This category documents settings for image files, thumbnails, the display of images, and the tiling of images in the user interface.

The maximum size of image files (in bytes) is defined with two independently configurable values. With the value MaxImageFileSize a number is specified, such as 1, 5 or 10. With the additional value MaxImageFileSizeUnit the unit of measurement is specified. These in combination give the maximum number of bytes an image file may not exceed. Important: Only integer numbers can be used.

Since there are many misunderstood units of measurement, the following table lists all accepted values and their internally used numeric values.

This can be used, for example, to make the following settings:

# 20 Megabyte -> 20 * 1000 * 1000 = 20 000 000 Byte


# 1 Gibibyte -> 1 * 1024 * 1024 * 1024 = 1 073 741 824 Byte

The following values can be used to configure information about supported image and tile sizes for JSON API requests. The following API request can be used to retrieve this information about images from operations:


Thereby all values can be used multiple times and return multiple values in the API request.

For example, a configuration could look like this:




When completing steps, various internal data checks are performed. Among other things, the number of existing and processed image files is checked. The historyImageSuffix value can be used to specify one or more file types that will be considered for this count.

This setting is used for file extensions and can also contain general texts with which a file name should end, but no regular expressions are interpreted.

For example, if all *.tif, *.jpg and *.jpeg files are to be considered, the following list could be used:



This category contains settings for validating operations, image files and metadata.


This category describes settings that affect the export of operations to downloadable files or files that can be cached on the server.

Last updated