How to Install and Configure Dgraph on Ubuntu 16.04 | 18.04

Dgraph is probably the world’s most advanced graph, multi-model NoSQL database system with high availability across multiple systems thus eliminating a single failure point.

If you need a database management system with native multi-model and robust user interface, including high availability, you may want to look at Dgraph.

This database platform is used small and large companies who process massive amount of data. The system provides synchronous replication, automatic failover so losing a hard disk or a server doesn’t affect services.

This brief tutorial shows students and new users how to install Dgraph on Ubuntu 16.04 | 18.04 LTS servers.

For more about Dgraph, please visit its homepage.

If you want to test it in your lab environment before going out and using it in production, the steps below should be a great place to start.Follow the steps below to get Dgraph installed on Ubuntu

Step 1: Install Required Packages

To install Dgraph, you may want to install some required packages and prepare your server.

First, run the commands below to install curl and apt-transport-https.

sudo apt update
sudo apt install curl apt-transport-https

After installing the package above, continue below to installing Dgraph.

Step 2: Installing Dgraph

Now that some required packages are installed, follow the steps below to get Dgraph installed and configured. Dgraph has an official script that allows you to easily install and configure the server.

To get the script, run the commands below:

curl -sSf | bash

When you run the script above, you’re prompted to accept the license agreement and others.

After the steps above, run the commands below to install it.

/usr/local/bin/

you should see similar message as shown below:

Latest release version is v1.0.11.
Downloading checksum file for v1.0.11 build.
######################################################################## 100.0%
Download complete.
Comparing checksums for dgraph binaries
Downloading 
######################################################################## 100.0%
Download complete.
Inflating binaries (password may be required).
Dgraph binaries v1.0.11 have been installed successfully in /usr/local/bin.
Please visit  for further instructions on usage.

Although Dgraph is installed and can function, there’s no way to control its services via Systemd. With that, we’ll want to create these services so managing startups and shutdowns can be easy.

To do that, run the commands below to create a system user called dgraph.

sudo groupadd --system dgraph
sudo useradd --system -d /var/run/dgraph -s /bin/false -g dgraph dgraph

After that, run the commands below to create directories for Dgraph logs and state files.

sudo mkdir -p /var/log/dgraph
sudo mkdir -p /var/run/dgraph/{p,w,zw}
sudo chown -R dgraph:dgraph /var/{run,log}/dgraph

After creating the directories above, you can begin creating each of the systemd service profiles for each of the services.

There are three services we need to create: dgraph-zero.service, graph-ui.service and dgraph.service

For dgraph.service, run the commands below:

sudo nano /etc/systemd/system/dgraph.service

Then copy and paste the lines below into the file and save.

[Unit]
Description=dgraph.io data server
Wants=network.target
After=network.target dgraph-zero.service
Requires=dgraph-zero.service

[Service]
Type=simple
ExecStart=/usr/local/bin/dgraph alpha --lru_mb 2048 -p /var/run/dgraph/p -w /var/run/dgraph/w
StandardOutput=journal
StandardError=journal
User=dgraph
Group=dgraph

[Install]
WantedBy=multi-user.target

For dgraph-zero.service, run the commands below:

sudo nano /etc/systemd/system/dgraph-zero.service

Then copy and paste the lines below into the file and save.

[Unit]
Description=dgraph.io zero server
Wants=network.target
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/dgraph zero --wal /var/run/dgraph/zw
StandardOutput=journal
StandardError=journal
User=dgraph
Group=dgraph

[Install]
WantedBy=multi-user.target
RequiredBy=dgraph.service

For graph-ui.service. run the commands below:

sudo nano /etc/systemd/system/dgraph-ui.service

Then copy and paste the lines below into the file and save.

[Unit]
Description=dgraph.io UI server
Wants=network.target
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/dgraph-ratel
StandardOutput=journal
StandardError=journal
User=dgraph
Group=dgraph

[Install]
WantedBy=multi-user.target

After the above,

sudo systemctl daemon-reload
sudo systemctl enable --now dgraph
sudo systemctl enable --now dgraph-ui

That should do it!

When you check the services status, you should see them all running and active.

systemctl status dgraph dgraph-zero dgraph-ui

See all services below:

● dgraph.service - dgraph.io data server
   Loaded: loaded (/etc/systemd/system/dgraph.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2019-02-27 11:05:50 CST; 24s ago
 Main PID: 22272 (dgraph)
    Tasks: 58 (limit: 4663)
   CGroup: /system.slice/dgraph.service
           └─22272 /usr/local/bin/dgraph alpha --lru_mb 2048 -p /var/run/dgraph/p -w /var/ru

Feb 27 11:05:54 ubuntu1804 dgraph[22272]: I0227 11:05:54.113076   22272 groups.go:388] Servi
Feb 27 11:05:54 ubuntu1804 dgraph[22272]: I0227 11:05:54.113488   22272 mutation.go:158] Don
Feb 27 11:05:54 ubuntu1804 dgraph[22272]: I0227 11:05:54.114168   22272 groups.go:388] Servi
Feb 27 11:05:54 ubuntu1804 dgraph[22272]: I0227 11:05:54.114531   22272 index.go:48] Deletin
Feb 27 11:05:54 ubuntu1804 dgraph[22272]: I0227 11:05:54.114678   22272 index.go:54] Rebuild
Feb 27 11:05:54 ubuntu1804 dgraph[22272]: I0227 11:05:54.114839   22272 mutation.go:158] Don
Feb 27 11:05:54 ubuntu1804 dgraph[22272]: I0227 11:05:54.115672   22272 groups.go:388] Servi
Feb 27 11:05:54 ubuntu1804 dgraph[22272]: I0227 11:05:54.115967   22272 mutation.go:158] Don
Feb 27 11:05:55 ubuntu1804 dgraph[22272]: I0227 11:05:55.104681   22272 groups.go:850] Leade
Feb 27 11:05:55 ubuntu1804 dgraph[22272]: I0227 11:05:55.105426   22272 groups.go:859] Got Z

● dgraph-zero.service - dgraph.io zero server
   Loaded: loaded (/etc/systemd/system/dgraph-zero.service; disabled; vendor preset: enabled
   Active: active (running) since Wed 2019-02-27 11:05:50 CST; 24s ago
 Main PID: 22271 (dgraph)
    Tasks: 13 (limit: 4663)
   CGroup: /system.slice/dgraph-zero.service
           └─22271 /usr/local/bin/dgraph zero --wal /var/run/dgraph/zw

Feb 27 11:05:53 ubuntu1804 dgraph[22271]: I0227 11:05:53.855906   22271 node.go:83] raft.nod
Feb 27 11:05:53 ubuntu1804 dgraph[22271]: I0227 11:05:53.856089   22271 raft.go:613] I've be
Feb 27 11:05:53 ubuntu1804 dgraph[22271]: I0227 11:05:53.856165   22271 assign.go:44] Update
Feb 27 11:05:53 ubuntu1804 dgraph[22271]: E0227 11:05:53.976168   22271 raft.go:464] While p
Feb 27 11:05:54 ubuntu1804 dgraph[22271]: W0227 11:05:54.091018   22271 node.go:550] [1] Rea
Feb 27 11:05:54 ubuntu1804 dgraph[22271]: I0227 11:05:54.091746   22271 zero.go:386] Connect
Feb 27 11:05:54 ubuntu1804 dgraph[22271]: I0227 11:05:54.093119   22271 zero.go:368] Got con
Feb 27 11:05:54 ubuntu1804 dgraph[22271]: I0227 11:05:54.097819   22271 pool.go:140] CONNECT
Feb 27 11:05:54 ubuntu1804 dgraph[22271]: I0227 11:05:54.098836   22271 zero.go:495] Connect
Feb 27 11:05:56 ubuntu1804 dgraph[22271]: I0227 11:05:56.977013   22271 raft.go:458] CID set

● dgraph-ui.service - dgraph.io UI server
   Loaded: loaded (/etc/systemd/system/dgraph-ui.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2019-02-27 11:06:00 CST; 14s ago
 Main PID: 22362 (dgraph-ratel)
    Tasks: 4 (limit: 4663)
   CGroup: /system.slice/dgraph-ui.service
           └─22362 /usr/local/bin/dgraph-ratel

Feb 27 11:06:00 ubuntu1804 systemd[1]: Started dgraph.io UI server.

Now you continue below to access its web interface.

Step 3: Accessing Dgraph Web Interface

Dgraph also comes with a web interface for easy management in your web browser. To logon, go the server hostname or IP address followed by port # 8000

Logon with no passwords.

Dgraph Ubuntu Install

Enjoy!

Congratulations! You have successfully installed Dgraph on Ubuntu 16.04 and 18.05

You may also like the post below: