Public Repository

Last pushed: 7 months ago
Short Description
Segrada - Semantic Graph Database
Full Description

Dockerfile: latest
Alternative method of creating from downloadable image: alt

Segrada is a semantic graph database for research and documentation.

See for more information.


  • Create entities and describe them. Add tags, colors and icons to your entities.
  • Connect entities sematically. Define relation types, tag relations and types.
  • Create a tag ontology by creating a tag hierarchy.
  • Add source entries and add references to entities and relations.
  • Upload files and connect them with everything.
  • Full text search of database and files
  • Graph view of connections
  • PDF-Preview of uploaded pdf files
  • Powerful filtering and search features
  • Multiple users possible
  • Scalable: Use on desktop, run as single or distributed server.
  • Internationalized: Currently English and German

Running in Docker:

docker run --name segrada -p 8080:8080 ronix/segrada

or with persistent database volume:

docker run --name segrada -p 8080:8080 -v path_to/segrada_data:/usr/local/segrada/segrada_data ronix/segrada

If you want to test Segrada in a distributed environment, you can run OrientDb and Solr on Docker, too. Do the following:

# get empty database and prepare Orient directory to use below
mkdir mysegrada_test
cd mysegrada_test
tar xzf SegradaEmptyDB.tar.gz
rm SegradaEmptyDB.tar.gz
mkdir orientdbs
mv segrada_data/db/ orientdbs/Segrada
# this is for testing only - should be changed in production:
chmod 777 segrada_data

# pull and run OrientDB
docker pull orientdb/orientdb
docker run -d -e "ORIENTDB_ROOT_PASSWORD=12345" \
    -v "$(pwd)/databases:/orientdb/databases" -p 2424:2424 \
    -p 2480:2480 orientdb/orientdb

# pull and run Solr
docker pull solr
docker run --name my_solr -d -p 8983:8983 -t solr
# create segrada core (Segrada will use default schema of Solr)
sudo docker exec -it --user=solr my_solr bin/solr create_core -c segrada

# pull and run
docker pull ronix/segrada
docker run -d -e "SEGRADA_ORIENTDB_LOGIN=admin" \
    -e "SEGRADA_ORIENTDB_URL=remote:localhost/Segrada" \
    -v "$(pwd)/segrada_data:/usr/local/segrada/segrada_data" \
    -e "SEGRADA_SOLR_SERVER=http://localhost:8983/solr/segrada" \
    --net="host" -p 8080:8080 ronix/segrada

Now you only have to cope with the issue of distributing uploading files. You can use a network and/or distributed file system for this, like NFS, Gluster, or Ceph. Another option would be to synchronize files between nodes. BitTorrentSync or syncthing would be choices here.

Docker Pull Command

Comments (0)