A local-first and universal knowledge graph, personal search engine, and workspace for your life.
[TO BE UPDATED]
Quick links:
1) Build the dgraph backend binary from source [reference]
requires
gcc,make,go>=1.13
git clone https://github.com/unigraph-dev/dgraph.git
cd ./dgraph
make install # installs built binary in $GOPATH/bin# you can view your $GOPATH by running: go env GOPATH
# and similarly, confirm binary exists:
> ls $(go env GOPATH)/bin | grep dgraph
dgraph2) In the unigraph project root, fetch and build project dependencies:
if you have
node.jsversioning issues, consider usingnvm
yarn && yarn build-deps3) Move the dgraph binary you built in step 1) to a new /opt/unigraph directory. This is a project default, but you can use a path of your choosing (as well as keep a separate data directory & bin path).
check that your user can read/write to the path(s) — you may need to e.g.
chown -R $(whoami) /opt/unigraph
4) Run the backend and frontend from the unigraph project root!
the
dgraphbackend currently requires its default ports to be free, especially8080.
# run backend with default data and bin path: /opt/unigraph
./scripts/start_server.sh
# or, run backend with custom paths:
./scripts/start_server.sh -d "<data directory>" -b "<dgraph binary location>"# run frontend application in a browser:
yarn explorer-start
# or, to run as an electron application:
yarn electron-startNOTE: if the backend failed during server initialization, you'll need a clean application state before reattempting:
killall dgraphto kill all runningdgraphprocesses, then- remove
p/,w/,zw/in your data directory (by default/opt/unigraph)
Server initialization is successful upon
unigraph> Unigraph server listening on port 3001and announcing upserts.
5) If you want to use third-party API integrations, consult the "API Keys" section below.
This repository contains all relevant source code for Unigraph:
- packages/
- unigraph-dev-backend/ : Unigraph local backend in Node.js.
- unigraph-dev-common/ : shared data and utilities between backend and frontend.
- unigraph-dev-explorer/ : Unigraph frontend in React.
- default-packages/ : schema, data and code declarations for packages providing default functionalities. If you are looking to build packages, you can study example projects here.
MIT License.
This page will be updated in a few days, but please join the Discord community in the mean time to talk about contributing, or open a GitHub issue if you want to help!
To use third-party API integrations, obtain desired API keys and put them in this format in a file named secrets.env.json before starting the server:
{
"twitter": {
"api_key": "abc",
"api_secret_key": "abc",
"bearer_token": "abc"
},
"reddit": {
"client_id": "abc"
},
"openai": {
"api_key": "abc"
},
"google": {
"client_id": "abc",
"client_secret": "abc"
}
}