So that's why I am adding a third post to this series, based on the lastest version of Michael's github repo. In this version, he has added a much more convenient way to serve the HTML page that we use as the basis for the Browser Guide: we essentially don't need a CORS-enabled webserver anymore - we can just use the webserver that is already baked into Neo4j and which the Browser already uses. Michael did this by developing an unmanaged extension that picks up the HTML file from a local directory, and then serves it when you call the :play command in the browser. So how does it work? Let's show you.
Installing the Unmanaged ExtensionYou will find the extension on the github repo under the "guide-extension" directory. Michael has added some detailed installation instructions if you would be able and willing to compile the software yourself - but he has also added a compiled version link for Neo4j Enterprise 2.3.2. You can download the .jar file, and then just add this to the right directory of your Neo4j Enterprise 2.3.2 installation: the "plugins" subdirectory.
Once you have that, we do still need to do a few manual interventions to activate and enable the extension.
Creating the directory and copying the guide's html fileThe extension assumes that you add a new directory in the "data" directory of your Neo4j installation: "guides". Once you have created that, you can copy the HTML file that I had created in the previous post, into this directory - this is where we will serve all future Guides from.
Configuring the Neo4j serverThen we need to make a few more easy configs to the neo4j-server.properties file in the ./conf directory of your Neo4j installation.
1. Disable authentication for the Neo4j serverMichael has not added a way to authenticate to the server yet, and therefore you just turn the dbms.security.auth_enabled switch from true to false.
2. Donfigure the extension .jar fileTwo things we need to do:
- In order to load the extension from a specific URL (in this case: http://localhost:7474/guides) we add property to the neo4j-server.properties file.
- We let the extension know where the guides will be located (the data/guides directory)
3. Edit the whitelist for the browser to load Guides fromAgain, we edit a particular section of the neo4j-server.properties file, and allow the browser to load data from the localhost server. Two ways to do that:
- simply allow ANY server with a "*"
- or specifically allow the localhost on the specific port that your server is running
And that should do it. All we need to do now is bounce the Neo4j server, and we should have our guide in the browser: just try
in the browser, and tah-daaaaaah:
Yey! That was easy!
Hope you like this as much as I did. Big kudos to Michael, again - and I look forward to seeing your Guides somewhere in our community.