UbuS: 3. Install Graphlytic

1. Deploy plugin into Neo4j

Graphlytic requires some advanced features which are not delivered with Neo4j but are deployed as a plugin for Neo4j delivered with Graphlytic installation package. To know more about the functionality of the plugin please see Architecture.

The Graphlytic Neo4j plugin has to be copied into Neo4j:

  • Stop Neo4j if it is running

  • Copy the file "neo4j-gl-plugin.jar" into the directory <NEO4J_HOME>/plugins/ (this directory can be changed in the Neo4j configuration file)

Example:

$ sudo su neo4j
neo4j:$ cp neo4j-gl-plugin.jar /usr/share/neo4j/neo4j-community-3.0.0/plugins/

To see what is the functionlity of plugin see Architecture.

2. Install Graphlytic

2.1. Install Graphlytic as service

After this installation Graphlytic will start automaticly after operating system is started. Neo4j is required by Graphlytic so there is also need to install Neo4j as a service (see UbuS: 2. Install Neo4j)

Graphlytic application will be started by user 'graphlytic'. Create this user with home directory (home directory is used by neo4j drivers to store known hosts <home>/.neo4j/known_hosts):

$ sudo useradd -m graphlytic
$ sudo usermod -L graphlytic

Copy Graphlytic installation file "graphlytic-<version>.tar.gz" into /tmp/.

Create directory structure:

$ sudo mkdir -p /usr/share/graphlytic /var/log/graphlytic
$ sudo chown -R graphlytic:graphlytic /usr/share/graphlytic /var/log/graphlytic

Copy installation file and unpack it:

$ sudo su graphlytic
graphlytic:$ cp /tmp/graphlytic-<version>.tar.gz /usr/share/graphlytic
graphlytic:$ cd /usr/share/graphlytic
graphlytic:$ tar zxvf graphlytic-<version>.tar.gz

Graphlytic's configuration is stored in the "conf/graphlytic.conf" file.

To configure Graphlytic run this command:

graphlytic:$ vi /usr/share/graphlytic/conf/graphlytic.conf

Default configuration is as follows:

# where Graphlytic stores its data
main.dataDir=../data/
# where Graphlytic stores log files
main.logDir=/var/log/graphlytic/
# where Graphlytic stores external widgets
main.widgetsDir=../widgets/
# where Graphlytic stores external icons
main.iconsDir=../icons/
 
# login page logo title
site.logo.title=Graphlytic
 
# url for HTTP or HTTPS connection to Neo4j REST
# do not comment this line. HTTP/HTTPS connection is mandatory for communication with Graphlytic Neo4j plugin
# you can use HTTPS url to use SSL but you need import Neo4j certificate into Java default truststore
neo4j.connector.http=http://localhost:7474
# url for Bolt connection to Neo4j
# comment this line to disable Bolt protocol communication and HTTP/HTTPS will be used for all communication with Neo4j
neo4j.connector.bolt=bolt://localhost:7687
# username for Neo4j connection
neo4j.connector.username=neo4j
# password for Neo4j connection
neo4j.connector.password=enter_real_password_for_neo4j_here

Configure starting script:

graphlytic:$ chmod a+x /usr/share/graphlytic/bin/graphlyticd
graphlytic:$ vi /usr/share/graphlytic/bin/graphlyticd

Edit this configuration file to use HTTP or HTTPS or both:

#!/bin/sh
 
# use this script with created service
 
# disable or enable HTTP/HTTPS. To disable comment od remove line
#HTTP_PORT=8080
HTTPS_PORT=8443

Copy init script and enable service:

$ sudo cp /usr/share/graphlytic/bin/graphlytic-init-deb /etc/init.d/graphlytic
$ sudo chmod a+x /etc/init.d/graphlytic

Add service to automaticly start after OS started:

$ sudo update-rc.d graphlytic defaults 97 03 

Check if service was enabled:

$ sudo find /etc/rc?.d/ -name "*graphlytic*"
 
expected result:
/etc/rc0.d/K03graphlytic
/etc/rc1.d/K03graphlytic
/etc/rc2.d/S97graphlytic
/etc/rc3.d/S97graphlytic
/etc/rc4.d/S97graphlytic
/etc/rc5.d/S97graphlytic
/etc/rc6.d/K03graphlytic