Set up Elasticsearch

This enhancement is in Beta please help by providing us your feedback!

SuiteCRM requires Elasticsearch 5.6.

Elasticsearch requires Java 8 to run, supporting only Oracle Java and OpenJDK.

The quickest ways of having an Elasticsearch server up and running is by either using the the official Docker image, or the .deb package for Debian-based systems (like Ubuntu).

In this guide we will assume that you are attempting to install Elasticsearch on an Ubuntu machine. Refer to the official documentation to know how to install Elasticsearch in different ways.

This guide will teach you how to have a development server up and running with very little configuration, either by installing via Docker or .deb package. Please keep in mind this guide is not suitable for setting up a production Elasticsearch server.

Be sure that the current user belongs to the docker group or you’ll receive permission issues.

Download image:

docker pull docker.elastic.co/elasticsearch/elasticsearch:5.6.10

Start with docker run

Start Elasticsearch. This is ideal for a test/development server.

docker run -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" -e "xpack.security.enabled=false" \
docker.elastic.co/elasticsearch/elasticsearch:5.6.10

Start with docker-compose

Create a new docker-compose.yml file or add the elasticsearch configuration your pre-existing docker-compose.

version: '3'
services:
    elasticsearch:
        image: docker.elastic.co/elasticsearch/elasticsearch:5.6.10
        container_name: elasticsearch
        restart: unless-stopped
        ports:
            - 9200:9200
            - 9300:9300
        environment:
            - discovery.type=single-node
            - xpack.security.enabled=false
            - "ES_JAVA_OPTS=-Xms512m -Xmx512m"

And start with:

docker-compose up

Download and install the public signing key:

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

You may need to install the apt-transport-https package on Debian before proceeding:

sudo apt-get install apt-transport-https

Save the repository definition to /etc/apt/sources.list.d/elastic-5.x.list:

echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list

Update the repository and install OpenJDK 11 and Elasticsearch:

sudo apt-get update && sudo apt-get install openjdk-11-jre elasticsearch

You might need to tweak the OpenJDK version to match the one available for your distribution.

Start Elasticsearch with:

sudo systemctl start elasticsearch.service

Test Installation

Check if the server is running with:

curl -X GET "localhost:9200/"

And you should receive something like this:

{
  "name" : "B5VzMdk",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "KGoWI84GQ8SZipmDaeA7pA",
  "version" : {
    "number" : "5.6.10",
    "build_hash" : "b727a60",
    "build_date" : "2018-06-06T15:48:34.860Z",
    "build_snapshot" : false,
    "lucene_version" : "6.6.1"
  },
  "tagline" : "You Know, for Search"
}

Note that the current set up does not provide authentication. Remember to secure your Elasticsearch server before going to production, or your data will be vulnerable!

Content is available under GNU Free Documentation License 1.3 or later unless otherwise noted.