I'm working on a open science project to learn why drugs work. We've created a network called Hetionet with 47,031 nodes and 2,250,197 relationships. We're using Neo4j and have a GraphGist tutorial showcasing our approch.
I'd like to let anyone interact with our network. The Neo4j Browser offers the flexibility we want with a nice user interface. So I was thinking a solution would be to setup a public Neo4j 3.0 Community server with the settings:
dbms.security.auth_enabled=false
to disable logindbms.read_only=true
to prevent write queries- setting the Execution Guard to limit query runtime
Here are additional considerations:
- Cloud hosting: we want to host this in the cloud so it's always available. It looks like AWS would be the cheapest option?
- Reproducibility: it would be nice if we could make the configuration reproducible and easy to redeploy. Docker for Neo4j that downloads the database from GitHub?
- A killer feature would be linking to or embedding a browser with a prefilled query (see this unresolved question).
So my question is:
- Will there be any problems that prevent hosting a public Neo4j instance?
- Am I on the right track with AWS/Docker?
- Will the setup break under concurrent usage? Let's assume we'll have at most 30 browsers open at once with no more than a few concurrent queries.
Additional notes:
- See related questions one and two.
- The Twitter graph demo gives similar functionality but creates a new instance for every user.
Thanks @michael-hunger for setting us on the right track. We're now publicly hosting Hetionet v1.0 at https://neo4j.het.io.
In short, we used Docker and host the instance on a DigitalOcean Droplet. Here is a longer discussion with more details. You can also check out our Docker setup and modified
neo4j.conf
.Thus far we haven't run into any security or scaling issues. If we do, we'll add those to discussion mentioned above.
your ideas all make sense.
You can create a browser-guide for your dataset, e.g. from your graphgist, similar to
:play http://guides.neo4j.com/graphgists
With this repo you can turn asciidoc (like graphgists) into browser guides: https://github.com/jexp/neo4j-guides
Rik did some blog posts on it: http://blog.bruggen.com/2016/03/an-easier-better-tastier-beergraphguide.html
Since 3.0.1, there are even some means to add a form, whose content is then used in the queries.
You have to enable the browser guide in the whitelist in
conf/neo4j.conf
Since Neo4j 3.0.1 you can setup the browser with an
:play
URL for your users:Regarding Docker, my colleague Ryan just published a docker image for the panama papers that is based on their published database: https://github.com/ryguyrg/panama-neo4j
PS: Feel also free to reach out to me via email michael at neo4j