Installation

This is a guide on installing TellusR from scratch. If you would just like to see TellusR in action and don’t have a running Solr to test with, please refer to our Tellusr/Solr Template over on GitHub instead.

Prerequisites

TellusR consists of three isolated components which will be installed individually:

  • NLP Service
  • TellusR Central
  • Solr Integrator

Two of these components are distributed as Docker containers. This guide assumes that you have Docker set up and running. Consult the official Docker documentation if you need to install it first.

All-in-One Interactive Setup

If you prefer installing everything through our interactive shell script, you can skip the rest of this page and simply do this in your shell:

curl -s "https://dist.tellusr.com/install.sh" | bash

This script will then guide you through the installation process, which is more or less identical to what is described on the rest of this page, and you won’t need to go back and forth between your browser and your shell. After running the script, go directly to the next section to configure your cores.

If you’re more of a hands-on type, however, the rest of this page explains how to do the same thing as the script does, by yourself and in the shell.

Manual Command Line Interface Installation

The TellusR NLP Service

The NLP Service is provided as a Docker image. Its installation is merely about loading the image and running it.

  1. Make sure you meet the following requirements:

    • At least 40 GB of HDD space if you include the default languages.
    • At least 7 GB of RAM if you’ll only be using Norwegian, and at least 30 GB if you’ll be using English.
    • A setup that enables Docker to allocate this much RAM.
    • Either have sudo rights or have your user in the Docker group
  2. Download and load the image:

    docker pull tellusr/nlp:2.2.64
    
  3. Run it:

    # Port that other components will use to connect to the NLP Service:
    NLP_PORT=8000
    # Languages to support:
    NLP_LANGUAGES=en,no
       
    # Run the image (using the above values as defaults if the variables are not set):
    docker run -d --name tellusr_nlp \
       -p ${NLP_PORT:-"8000"}:8000 \
       --restart=always \
       -v tellusr_nlp_models:/src/nlp_models/ \
       -e WIKI_LANGS=${NLP_LANGUAGES:-"en,no"} \
       -e MODEL_LANGS=${NLP_LANGUAGES:-"en,no"} \
       -e NLP_DB="internal" \
       tellusr/nlp:2.2.64
    

    Please note that during its first execution, this docker image will download about 30 GB of data, so it may take a while.

The TellusR Central

The TellusR Central is also provided through Docker.

  1. Download and load the image:

    docker pull tellusr/central:2.2.64
    
  2. Define URLS and usernames to access different parts of the system:

    # Port on which the TellusR Central will be receiving connections:
    TELLSUR_CENTRAL_PORT=8989
    
    # Url of the NLP Service
    # (use the same port as defined when starting the NLP container):
    NLP_URL="http://host.docker.internal:8000/api/"
    
    # Url to the Solr server where TellusR is to be integrated.
    # Specify an explicit IP or `host.docker.internal` for accessing
    # your localhost from within the docker container.
    SOLR_URL="http://host.docker.internal:8983/solr"
    
    # Other Solr options:
    SOLR_USERNAME=solr
    SOLR_PASSWORD=SolrRocks
    
    # Postgres options:
    POSTGRES_HOST=host.docker.internal
    POSTGRES_PORT=5432
    POSTGRES_USER=postgres
    POSTGRES_PASSWORD=postgres
    POSTGRES_DATABASE=tellusr_central
    
  3. Run it:

    docker run -d --name="tellusr_central" \
       -p $TELLSUR_CENTRAL_PORT:8989 \
       --restart=always \
       --stop-timeout=25 \
       -e NLP_URL=${NLP_URL:-"http://host.docker.internal:8000/api/"} \
       -e SOLR_URL=${SOLR_URL:-"http://host.docker.internal:8983/solr"} \
       -e SOLR_USERNAME=${SOLR_USERNAME:-"solr"} \
       -e SOLR_PASSWORD=${SOLR_PASSWORD:-"SolrRocks"} \
       -e POSTGRES_HOST=$POSTGRES_HOST \
       -e POSTGRES_PORT=$POSTGRES_PORT \
       -e POSTGRES_USER=$POSTGRES_USER \
       -e POSTGRES_PASSWORD=$POSTGRES_PASSWORD \
       -e POSTGRES_DATABASE=$POSTGRES_DATABASE \
       -t tellusr/central:2.2.64
    

Installation of the integrator

Finally, there is the Solr integrator Jar-file. Download it, update some configuration files, restart Solr, and you’re all set:

  1. Download the Jar-file.

  2. Place it inside the /lib folder in Solr Home (create the folder if it doesn’t exist)

  3. In the Solr Home directory, create a file named tellusr.properties and populate it with the following configuration:

    # URL of the TellusR Central (since we will not be accessing this from within
    # a Docker container, no special treatment for 'localhost' is needed):
    tellusr.central_url=http://localhost:8989
    
    # Path to a directory that the service can use for persistence: 
    tellusr.data_dir=/var/local/tellusr/integrator
    
  4. For every Solr core that you would like to see in the TellusR Central, find its solrconfig.xml file and insert this:

    <requestHandler name="/tellusr_config" class="com.sannsyn.solrplugins.TellusRConfig"/>
    
  5. Restart Solr.

Next

If everything’s done correctly, your Solr system is now integrated with TellusR. You should find the TellusR Central on your http://localhost:8989/ (unless you defined some other TELLSUR_CENTRAL_PORT above). If you fail to get this working, please refer to the Troubleshooting Guide.

You should now configure your cores