Kosa is a library, editorial, and publishing service.
- Architecture Decision Records (ADRs)
- Pariyatti Network Topology
- The Pariyatti Data Model
- What is a (relational) database?
- What is a graph database?
The Pariyatti mobile app will consume the API as specified here.
http://kosa-sandbox.pariyatti.org - Use this option if you will working exclusively on the mobile app without modifying or debugging the server.
Follow the instructions under Development. Use this option if you need to modify or debug the server itself.
Deployment instructions: /deployment/README.md
In general, pin versions in development the way you would in any other environment.
There is a lot of old Neo4j.rb
documentation out there. Use these:
- https://neo4jrb.readthedocs.io/en/v9.4.0/
- https://gitter.im/neo4jrb/neo4j (look for @klobuczek and @amitTheSongadya_twitter)
- https://neo4j.com/developer/ruby/
sudo apt-get update
sudo apt-get install autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm6 libgdbm-dev
curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-installer | bash
rbenv init # follow the instructions
rbenv install 2.7.1
rbenv local 2.7.1
...because Javascript doesn't have enough package managers yet. 🙄
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt-get update
sudo apt-get install yarn
yarn install --check-files # prevents the "integrity check" error
OpenJDK 8 is recommended by Neo4j. OpenJDK 11 is the highest "supported" version but OpenJDK 14 seems to work fine.
sudo apt install openjdk-11-jdk
java --version # => openjdk 11.0.6 2020-01-14
update-java-alternatives --list # => java-1.11.0-openjdk-amd64
sudo update-java-alternatives --jre --set java-1.11.0-openjdk-amd64
- Use the
Ruby+Devkit 2.6.6-1 (x64)
RubyInstaller. Ruby 2.7 does not work on Windows due to a nokogiri conflict. Pick the default options for the MYSYS install.
gem install bundler
- Install Node.js using the Windows .msi installer.
npm install -g yarn
yarn install --check-files
- Install OpenJDK 11 from the RedHat .msi installer. If you have an existing Java install (> Java 8) that should also work.
- See instructions: (VERY OPTIONAL) Install Neo4j Desktop
git clone [email protected]:pariyatti/kosa.git
cd kosa
bundle install # Windows: you will see a warning about circular dependencies - ignore
rails webpacker:install # Windows: choose "no" for all the files it wants to replace
# Install a Neo4j development db. You need a separate instance for each database.
# Windows: Ignore `:install` / `:configure` / `:start`. Use Neo4j Desktop on Windows.
rake neo4j:install[community-3.5.17,development]
rake neo4j:config[development,7005]
rake neo4j:start[development]
# Configure Neo4j development db
rake neo4j:migrate
rake neo4j:db:setup
rake neo4j:db:sample # if you want example data for development
rails s
Visit http://localhost:3000 and login with the default email/password: [email protected]
/ kosa
.
# Install a Neo4j test db. You need a separate instance for each database.
# Windows: Ignore `:install` / `:configure` / `:start`. Use Neo4j Desktop on Windows.
rake neo4j:install[community-3.5.17,test]
rake neo4j:config[test,7008]
rake neo4j:start[test]
# Configure Neo4j test db
RAILS_ENV=test rake neo4j:migrate
rake test
- Strongly prefer
rake neo4j:install
on Linux and OSX
You don't absolutely need to install Neo4j from a package. Instructions are provided if you want an instance of Neo4j to play with.
wget -O - https://debian.neo4j.com/neotechnology.gpg.key | sudo apt-key add -
# hit enter to confirm you're being asked for your sudo pw
echo 'deb https://debian.neo4j.com stable latest' | sudo tee -a /etc/apt/sources.list.d/neo4j.list
sudo apt-get update
sudo apt-get install neo4j
- Strongly prefer
rake neo4j:install
on Linux and OSX
You don't absolutely need to install Neo4j Desktop but it's a neat way of looking at your Neo4j database with the visualization tools.
- Install from: https://neo4j.com/download/
- Create a
Pariyatti
project with a db namedkosa3
. You must create a Neo4j 3.5.17 db. If you try to use Neo4j 4.0.x you will see the infamousCouldn't agree on a version (Sent versions [1, 0, 0, 0])
error when you runneo4j:migrate
. - Change the following lines in the
Settings
tab:
dbms.security.auth_enabled=false # no auth in dev
dbms.connector.bolt.enabled=true # turn on bolt
dbms.connector.bolt.tls_level=OPTIONAL # turn off SSL
dbms.connector.bolt.listen_address=:7003 # avoid port conflicts
dbms.connector.http.enabled=true # web UI
dbms.connector.http.listen_address=:7001 # avoid port conflicts
- Restart the db.
- You may need to come back from time to time to double-check the settings. Neo4j Desktop has a habit of resetting some settings (
dbms.security.auth_enabled
in particular) on its own.
The contribution guidelines can be found here.
Copyright (c) 2019-present, Pariyatti