mmmWiki setup

Setting up mmmWiki (Neo4j version)

These instructions are really only as notes for the developer, since the neo4j-plugin (see below) is not available on the internet.


DISCLAIMER: The software is offered as is.

Requirements:

To run the software either locally or on for example digitalocean.com

Risk of getting stuck
/ making an error
Action
Medium Install Node.js (Google it (Personally I install nvm, then select the latest version of node.js))
Medium Install Neo4j
Medium Install Redis (they have pretty good "quick start"-instructions (ref))
Medium Install MongoDB
Small Download the files: git
Small In the extracted folder: Run npm install (to download required Node.js packages ).
100%* Place the neo4j-plugin (jar-file) in <neo4j-home>/plugins/ (restart of neo4j afterwards required)
Small Create a file config.js (for example by copying and editing config.example.js). Read the comments (follow the instructions) of the file.
Small Create a site.csv-file. This should be placed in the directory where Neo4j's "LOAD CSV"-command looks for files to load. (See the dbms.directories.import-variable in the <neo4j-home>/conf/neo4j.conf (by default <neo4j-home>/import/). Personally I use ../mmmWikiBU/ (parallell to the mmmWiki directory), (the same as mysql-version of this software). )

Examples of a site.csv file:

"boDefault","boTLS","urlIcon16","urlIcon200","googleAnalyticsTrackingID","aPassword","vPassword","name","www"
false,true,"lib/image/Icon/iconRed16.png","lib/image/Icon/iconRed200.png","UA-12345678-2","","","gav","gavott.com"
true,true,"lib/image/Icon/iconRed16.png","lib/image/Icon/iconRed200.png","UA-12345678-3","","","emag","emagnusandersson.com"
... or if you are testing locally:
"boDefault","boTLS","urlIcon16","urlIcon200","googleAnalyticsTrackingID","aPassword","vPassword","name","www"
true,false,"lib/image/Icon/iconRed16.png","lib/image/Icon/iconRed200.png","","","","emag","localhost:5000"
false,false,"lib/image/Icon/iconRed16.png","lib/image/Icon/iconRed200.png","","","","gav","192.168.0.7:5000"
The top line consists of property names. Then the following lines consists of property values of resp site.

One and only one row should have boDefault=true.

The "aPassword" and "vPassword"-variables aren't used so those can be left empty. (There are "aPassword" and "vPassword"-variables in the config.js-file however.)

Small execute node script --loadFrBU site.csv

(This will create the site-nodes in neo4j)

Small Start the app (By executing node script for example)

In production you might want the app to start automatically at reboot and after crash. To do this I personally use the pm2.

* The plugin-jar file is not yet available over internet. Since it is a java-project it is not in the same git-repository, but for now you can contact me and I'll send it to you. (Perhaps I should create a separate git-repository on github.)

Starting with a backup

Follow the instructions above.

Instead of executing "node script --loadFrBU site.csv", execute:

node script --loadFrBU

Delete everything from the databases

This command supplied for your convenience. WARNING this will delete everything on your neo4j-db and the mongodb-db called "mmmWiki". Dont use this command if you have other stuff on your neo4j-db:
node script --deleteAll
See node script --help for more options.

TLS (https)

This is a story of its own.

I'm currently using nginx as a proxy which is able to handle TLS.

I'm using letsencrypt as certificate authority.

See also