A collaborative graph editor for organizing, communicating, and analyzing data in graph form.
It is licensed under the GNU AGPL v3, see LICENSE for more details.
Patches or pull requests are welcome but we require a contributor license agreement, see TBU
Database:
Server:
requirements.txt
Client
For rebuilding client css from scss saource files you will need:
Build dependencies:
# apt-get install \
ant \
python-pip \
ruby-sass
use pip to install all requirements
$ pip install -r requirements.txt
Use npm for javascript (client) requirements, currently for development (testing) only, all other external dependencies are part of the repository:
$ npm install
To run Rhizi locally:
neo4j console
or neo4j server
after installing neo4j: we use 2.2.1 from http://neo4j.com$ ./run-local.sh
Or perform the following by hand:
ant -f ./build.ant deploy-local
$ cd deploy-local && python bin/rz_server.py --config-dir=etc
Command line use documentation can be viewed with: :$ python rz_server.py -h
Rhizi configuration is currently documented in code, see src/server/rz_server.py#Config
Through the sign up page you can add users.
This is possible through the src/local/rz_cli_tool as follows: ./src/local/rz_cli_tool.py --config-dir res/etc --user-db-path res/user_db.db --email alon@rhizi.local --role-add admin
Build currently uses Apache Ant(http://ant.apache.org/) and make
To update the css files you need sass. To rebuild the css files issue make from the top level directory:
$ make
For dev mode(debbuging, manual file load) use ?debug=1
at end of URL: e.g. file://rhizifolder/html.index?debug=1
Client testing:
$ npm install $ karma start
pkg_foo_bar
class=form-Foo_input-field id=email-field
Test code makes use of Python's unittest - run by invoking them with python, or by creating a launch configuration in your IDE of choice.
Note: server test-cases do not yet support pre-run DB state validation and are likely to leave DB side-effects.
Taks a look at src/server-tests/test_util__rzdoc#DBO_RDG__skill_graph
as a starting point for random data generation.
mingw doesn't have python support, so using mingw (I want a unix native python)
Deployment, that is installation on a different server that has none of the development prerequisites installed, takes two forms currently:
These modes impost a slightly different resource layout, and require the following values to be correcly set/injected:
fragment_d_path
, handled by jinjafragment_d_path
template_d_path
obtain a server configuration by either adjusting res/etc/rhizi-server.conf.example or reusing an already active one.
the following configuration keys will likely need changing: DEBUG, SECRET_KEY, root_path, access_control, etc.
let targetDomain be the target domain (i.e. rhizi.example.com)
place configuration at res/production-patch-set/${targetDomain}/rhizi-server.production.conf
use the build.ant deploy-remote target:
use res/debian/rhizi.init to run rhizi as a system process: rz_server.py will need chmod'ing to +x
Deploying: $ ant -v -f build.ant -DremoteDeployServer=rhizi.example.com -Drsync_module=/srv/www/rhizi.example.com deploy-remote
$ targetDomain="cri.rhizi.net" $ mkdir res/production-patch-set/${targetDomain} $ scp rz-1:/etc/rhizi/rhizi-server.conf res/production-patch-set/${targetDomain}/rhizi-server.production.conf
This is the only way to merge a number of documents right now. Here is how:
It is installed by default to /srv/www/
rz-doc --list-names
rz-doc --list-names > merge.file
rz-doc --merge-file merge.file --merge-target "All Documents"
creates a new doc called "All Documents" with the contents of all rzdocs in merge.file.
[url]/api/rzdoc/[doc-title]/delete