Graphileon Server edition Docker installation

Docker

Before proceeding with the installation, please install the Docker engine on the system. Instructions on how to install Docker can be found on the official Docker website. Graphileon Docker image was built with Docker version 3.3 and should be compatible with all later versions.

After installing and running Docker, download the Graphileon Docker image and import it with the following command.

docker load -i /path/to/graphileon-<version>-docker.tar.gz

Start Graphileon

Graphileon is then started with the following command:

docker run -dt \
-p $HTTP_HOST_PORT:$HTTP_DOCKER_PORT \
#OPTIONAL -p $HTTPS_HOST_PORT:$HTTPS_DOCKER_PORT \
#OPTIONAL -v $PERSISTENT:/persistent \
graphileon

Where:

  • $HTTP_HOST_PORT refers to the port on the host machine that is used to connect to Graphileon.
  • $HTTPS_HOST_PORT [OPTIONAL] refers to the port on the host machine that is used to connect to Graphileon with secure connections.
  • $HTTP_DOCKER_PORT is the port on the Docker machine that Graphileon listens to for HTTP requests. You can set this in config.json. Default 3000
  • $HTTPS_DOCKER_PORT [OPTIONAL] is the port on the Docker machine that Graphileon listens to for HTTPS requests. You can set this in config.json. Default 3001
  • $PERSISTENT: [OPTIONAL] path to a folder on the host machine where Graphileon will store uploaded files. If it is not set folder inside docker will be used instead.

Example Run:

docker run -dt \
-p 3000:3000 \
graphileon

On success, expect to see output similar to the following:

<info> logger initialized (in graphileon-server.js:47)
<log> app listening on port 3000 (in graphileon-server.js:47)

Stop Graphileon

To stop Graphileon, press Ctrl-C.

How to Configure?

You can find the configuration file config.json in the $CONFIG folder.

You should set:

  • port: the $HTTP_DOCKER_PORT port Graphileon server will listen to (inside docker container / vm)

  • https port: the $HTTPS_DOCKER_PORT port Graphileon server will listen to, for example:

      "https" {
      	"port": 3001
      }
    
  • allowedDomains: a list of requesting domains the server is allowed to respond to. Add here http://$SERVER_ADDRESS:$HTTP_HOST_PORT and https://$SERVER_ADDRESS:$HTTPS_HOST_PORT (where $SERVER_ADDRESS is the domain and/or port of the host machine)

If you change any configuration you need to restart Graphileon: stop and rerun the start command.

Set up Graphileon

Graphileon is now ready to be set up. To access Graphileon, point your browser to

https://$SERVER_ADDRESS:$HTTPS_HOST_PORT or http://$SERVER_ADDRESS:$HTTP_HOST_PORT where $SERVER_ADDRESS is the ip or domain name of the host machine and $HTTP_HOST_PORT or $HTTPS_HOST_PORT are the ports configured earlier.

Using a local Neo4j instance

In order to use Graphileon with a local Neo4j instance, you will need to configure Neo4j and find the IP address that, within the Docker container, refers to your local machine.

Local machine IP address

If your Neo4j instance runs on the same machine as your Docker instance, the ip address you need enter as Neo4j host may differ from machine to machine. Below are the default IP addresses for the most common operation systems and Docker versions:

Configuration IP Address How to find it
Linux/MacOS & Docker Native 172.17.0.2 Run docker inspect, and find "Gateway" under "NetworkSettings" > "Networks" > "bridge" in the output.
Windows & Docker Native 10.0.75.1 In PowerShell (or Command Prompt), run ipconfig and look for "Ethernet adapter vEthernet (DockerNAT)".
MacOS & Docker Toolbox 10.0.2.2 This is the IP address VirtualBox uses to address the host machine from a virtual machine.

Neo4j Configuration

By default, Neo4j only listens to localhost. Although Graphileon also runs on your machine, it runs within a Docker container, which is considered, for all intents and purposes, a separate machine. So you will need to tell Neo4j to allow connections from outside localhost.

To do this, change this line in neo4j.conf:

#dbms.connectors.default_listen_address=0.0.0.0    

to:

dbms.connectors.default_listen_address=0.0.0.0

After saving the neo4j.conf file, you need to restart Neo4j.

Firewalls et cetera have to be configured accordingly as well. For Windows 10: check whether the Firewall is configured correctly, go to Control Panel > System and Security > Windows Firewall > Allowed Apps and look for "neo4j-ce". If you're on a public network, make sure the "Public" column is checked. On a private network, make sure the "Private" column is checked.

Using a local Anzograph instance

In order to use Graphileon with a local Anzograph instance, you will need to configure Anzograph.

Anzograph Configuration

By default, Anzograph SPARQL protocol service is disabled. Graphileon requires this protocol.

To do this, change this line in settings.conf:

#enable_sparql_protocol=false

to:

enable_sparql_protocol=true

After saving the settings.conf file, you need to restart Anzograph.

Add an application store

Graphileon needs an application store to store its function nodes. [image] Be sure to test the connection before you save your store settings.

Add additional graph stores

We recommend creating separate stores for storing business data. Using a single store for both Graphileon functions and business data may lead to undesired side effects.

Be sure to test the connection before you save your store settings.

Add user(s)

Users can be added on the Users tab on the Settings page.

You need at least one user with Admin Rights.

Add the license information to the Settings page.

You can find the license information in Appendix A to the Software license agreement. It has the format:

[BEGIN]
Expires:yyyy-mm-dd
key:XXXXX-XXXXX-XXXXX
Name:[name licensee]
...
[END]

This information, including the [BEGIN] and [END] tag, has to be pasted into the License Information field on the Settings page.

Apply settings

After having set up the application stores, additional data stores, creating users and having provided the license information, click 'Apply Settings'. Graphileon will take you to the login screen.