Docker image

There is a Dockerfile using which you can easily create a Docker container containing the search engine and Apache Tika. It needs an external Elasticsearch instance, for example the "elasticsearch" Docker image.

Building from the Dockerimage

  cpanm --look Dancer-SearchApp
  docker build -t dancer-searchapp -f docker/Dockerfile .

Docker image configuration

You pass the IP address and port of the Elasticsearch instance to the search engine using the --env parameter when starting the Docker image:

  docker run --env SEARCHAPP_ES_NODES= -P dsa


Elasticsearch requires Java JRE 8, so you'll need to have that available.


We need Elasticsearch 5.x.

Download Elasticsearch from

Install and launch Elasticsearch.

Apache Tika

Download the Tika server from

Current version is

Copy the JAR file into the directory jar/ of the distribution.

Install the "Thunderlink" plug-in / add-on for Thunderbird and register the thunderlink:// URI. This allows your browser to directly display emails in Thunderbird.


Indexing a directory

  perl -Ilib -w bin/ -f t/documents

Indexing an IMAP account

Copy the config file from config-examples/imap-import.yml and edit the username, password, server and folders to index.

  perl -Ilib -w bin/ -c my-imap-import.yml

Indexing an ICAL calendar

  perl -Ilib -w bin/ t/documents/timetable.yapce2016.ics \
    -c config-examples/ical-import.yml